목록2022/05/17 (2)
Brise
객체지향에서 인스턴스화 시킬 수 없는 클래스를 추상클래스라 한다. C++언어에서는 추상클래스를 함수의 값을 NULL(아마도 C언어에서 함수포인터를 NULL로 하는 것과 같은 듯 하다.)로 지정하는 것으로 추상 함수를 만들고, 추상함수를 가지고 있는 객체를 추상클래스로 지정한다. C++에서는 보통 인터페이스를 구현하고자 할 때 추상클래스를 이용하여, 인터페이스를 구현한 객체가 해당 인터페이스를 필수로 구현하도록 컴파일러 단계에서 강제하는 방식을 주로 사용한다. // 2_추상클래스 168 page #include // 추상 클래스 : 순수 가상함수가 한개 이상 있는 클래스 // 특징 : 객체를 만들수 없다. // 의도 : 특정 함수의 구현부를 제공하라고 지시 하는 문법. class Shape { public..
대부분의 C++ 프로그램에서는 객체를 핸들링하기 위해서 객체 포인터를 주로 사용하며, 파생클래스와 기반클래스 객체들을 일괄로 다루기 위해 기반클래스 포인터를 사용한다. 만약, 기반클래스 포인터를 이용하여 객체를 핸들링할 때, 객체의 소멸자가 가상함수가 아니라면 파생클래스를 소멸시킬 때 기반클래스의 포인터를 이용하여 소멸시키기 때문에 기반클래스의 소멸자가 불려 비정상적으로 객체를 소멸시키게 된다. 때문에 클래스의 소멸자는 가상함수(virtual function)이어야만 한다. // 1_가상소멸자 149 page #include // 핵심 : 모든 기반 클래스의 소멸자는 반드시 가상함수 이어야 한다. class Base { public: virtual ~Base() {} // 기반 클래스의 소멸자가 가상이면..