오버라이딩(Overriding) 동일한 이름의 함수를 설정하라 오버라이딩(Overriding)은 오버로딩(Overloading)과 비슷한 이름을 가졌지만 엄연히 다른 개념이다. 오버로딩은 같은 이름의 함수를 여러 개 만드는 것이고, 오버라이딩은 하나의 가상 함수를 상속 받아 동일한 함수의 내용을 사용하거나 아이에 다르게 사용할 수 있는 방법이다. 오버라이딩이 없다면 상속의 확장성의 폭은 굉장히 좁혀졌을 것이다. 멤버 재정의와 정적 바인딩 이번 학습 단원에서는 정적 바인딩이 상속 관계에서 어떻게 동작하고, 부모와 자식간 참조 범위에 어떻게 관여하는지 연관성을 알아 볼 수 있다. 들어가기전, 조금 맛보기를 한다면 정적 바인딩은 컴파일 시간에 변수와 함수의 크기를 할당하며 이를 통해 각 변수와 함수가 독립된 ..
상속의 필요성상속은 복잡하면서도 간단한 개념이다. 잘짜여진 상속 계층을 구현한다면 코드는 간결하고 안전한 캡슐화를 통해 더욱 유지보수 및 확장성을 확보할 수 있다. 이러한 상속의 여러 사용 방법중 하나를 알아보자. 이번 학습은 메신저 앱에 지원되는 메시지라는 부모 클래스와 텍스트를 답는 TextMessage와 이미지를 담는 ImageMessage라는 파생 클래스로 표현하겠다. 각 클래스는 다음과 같이 선언되어있다. 텍스트 메시지 클래스class TextMessage { public: TextMessage(int sendTime, const string& sendName, const string& text) : sendTime(sendTime), sendName(sendName), text(text) {}..
상속 관계 생성자/소멸자 상속 받은 클래스는 어떤 생성자/소멸자를 호출하는가? 상속 관계가 성립되면 생성자와 소멸자의 작동이 복잡해지며 중요한 측면이 되기도 한다. C++에서는 파생 클래스가 생성되거나 소멸될 때 기본 클래스의 생성자와 소멸자가 어떻게 호출되는지에 대한 규칙이 있다. 우선 상속 관계에서 자식 클래스의 생성자가 호출된다면 반드시 부모 클래스의 생성자도 호출되어야 한다. 이를 따로 구현하지 않는다면, 부모 클래스의 기본 생성자를 먼저 호출한다. 부모 클래스의생성자를먼저 호출한다. 클래스의 모든 멤버 변수가 생성된다. (즉, 멤버 변수들의 생성자가 호출된다.) 생성자의 본문이 실행된다. 상속 관계 생성자 호출 #include using namespace std; class Base { publ..
상속 (Inheritance) 클래스를 다른 클래스에 물려주는 것 C++에서 상속은 객체 지향 프로그래밍(OOP)의 중요한 개념 중 하나이며, 그 개념은 크게 어렵지는 않다. 상속은 기존 클래스(부모 클래스 또는 기본 클래스)의 특성과 동작을 새로운 클래스(자식 클래스 또는 파생 클래스)에게 물려주는 메커니즘을 제공한다. 이를 통해 코드의 재사용성을 높이고 계층적인 구조를 형성하여 프로그램의 구성을 용이하게 만들 수 있다. 상속이 일어나면 접근 제어자에 따라 부모 클래스의 멤버들을 자식 클래스가 참조할 수 있게되고, 자식 클래스는 자신만의 멤버를 더 선언할 수 있다. 또한, 자식 클래스는 부모 클래스의 파생된 클래스가되어 자식 클래스가 부모 클래스에 포함되는 관계를 형성한다. 혹은 자식 클래스는 부모 클..
- Total
- Today
- Yesterday
- 레지스터
- 입출력
- 초기화
- 할당
- New
- 함수
- 멀티스레드
- 인터럽트
- static_cast
- 클래스
- 알고리즘
- 수학
- 스레드
- CPU
- 명령어
- malloc
- 구조
- 크기
- 백준
- 게임수학
- 컴파일
- const
- dynamic_cast
- 프로세스
- 상속
- 포인터
- 운영체제
- thread
- 메모리
- c++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |