일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 백준
- algorithm
- ASF-110
- 네이버 검색 시스템
- Ultimate Search
- Github
- 코딩테스트
- Algorithmus
- 취준
- C++
- Python
- Pro-Con
- DP
- 격리수준
- SRE
- LeetCode
- python3
- 알고리즘 종류 정리
- 자소서
- baekjoon
- GitHub Desktop
- 백트래킹
- 프로콘
- 프로그래머스
- 프로콘 갈림현상
- programmers
- 리트코드
- 제노블레이드 2
- 알고리즘
- git
- Today
- Total
목록Programming Language/C++ (3)
산타는 없다
일반적으로 상속 시 오버라이딩 할 메소드엔 virtual을 붙여서 프로그램이 파생 클래스의 메소드를 호출할 수 있도록 알려줍니다. 하지만 이를 붙이지 않거나 객체를 new로 생성하지 않았을 때는 어떻게 될까요? virtual을 붙이지 않았을 때 virtual을 붙이지 않았을 때는 참조형이나 포인터형에 기초하여 메서드가 호출되기 때문에 기초 클래스의 메서드가 실행됩니다. 객체를 new로 생성하지 않았을 때 객체를 new로 생성하지 않았을 때는 무조건 객체형을 따라가게 됩니다. 객체형에 들어간 객체가 파생 클래스여도 기초 클래스의 메서드가 실행되게 됩니다. 테스트 기초 클래스와 class people { private: string name; int age; public: people(string input..
C++에서 클래스의 상속은 객체 지향 언어의 목적인 코드의 재사용성을 높여줍니다. 예를 들어 과일 클래스와 사과, 바나나 클래스가 있을 경우 과일이 가지고 있는 특징을 과일 클래스에 정의하고 사과와 바나나는 과일 클래스를 상속받아 이미 작성된 과일의 특징을 다시 작성하지 않고 그대로 사용할 수 있습니다. 이런 상속에서 기초 클래스와 파생 클래스의 생성자, 소멸자의 실행 순서를 알아보겠습니다. 결론부터 말하면 생성자 : 기초 -> 파생 소멸자 : 파생 -> 기초 순서로 실행됩니다. 생성자 : 기초 -> 파생 정확히 말하면 파생 클래스를 선언이 될 때 기초 클래스의 생성자가 실행이 되고 그다음 파생 클래스의 생성자가 실행이 됩니다. 그 이유는 파생 클래스의 객체를 생성할 때, 먼저 기초 클래스의 객체를 생성..
작성한 소스코드는 빌드 과정을 통해 실행할 수 있는 실행파일이 됩니다. 각 언어별로 빌드하는 과정과 실행하는 방법이 다른데 C++의 경우 어떻게 빌드가 되는지 정리해 보겠습니다. C++ 컴파일러 C++의 빌드 과정에서 빼먹을 수 없는 것이 컴파일러입니다. C++의 경우 운영체제 별로 컴파일러가 다릅니다. 자바의 경우 자바 컴파일러가 소스코드를 바이트 코드로 변환시키고 만들어진 바이트 코드를 각 운영체제에 맞는 JVM 내에 로드하여 실행합니다. 때문에 자바는 운영체제에 맞는 JVM이 있다면 소스코드 수정 없이 프로그램을 실행할 수 있습니다. 하지만 C++은 운영체제 별로 컴파일러가 다르기 때문에 소스코드를 각 컴파일러에 맞게 수정해야되는 상황이 있을 수 있습니다. 빌드 과정 전체적인 과정을 그림으로 표현한..