본문 바로가기

override

[C++11] final과 override C++에서는 명시적으로 클래스의 상속을 막는 방법이 없었습니다.C++ CLI 등에서 selaed라는 키워드가 존재했지만 이것은 표준이 아닌 MS 확장 키워드입니다.C# 역시 sealed라는 키워드를 사용합니다.C#의 sealed 키워드에 대한 내용은 다음 링크에서 확인 가능합니다.2014/12/27 - [Programming/C#] - sealed 키워드를 사용한 클래스 상속 방지C++ CLI나 C#이나 모두 닷넷을 지원하기 위해서 만들어진 것을 생각하면 공통된 특정 키워드가 있는 것이 이해가 갑니다.C++11에서는 상속을 정교하게 다루기 위해 final과 override라는 새로운 키워드가 추가되었습니다.final은 상속을 차단하기 위해 추가된 키워드이고, override는 클래스의 메소드를 명시적으로.. 더보기
다형성과 가상함수 상속에서 중요한 사실은 부모는 자식을 가리킬 수 있다는 것입니다. 즉, 부모 클래스 B가 자식 클래스 D를 가리킬 수 있다는 말입니다.하지만 이런 방법은 부모에 없는 자식 멤버는 사라진다는 문제점이 있습니다.부모가 수용할 수 있는 것이 없기 때문에 버려지게 되는 것입니다.그리고 역으로 B = D는 될 수 있지만 D = B는 성립하지 않습니다.다음의 코드를 보도록 하겠습니다. #include using namespace std; class Base { public: void Output() { cout 더보기