순수 가상 함수와 추상 클래스
순수 가상 함수 는 함수 본문이 없는 가상 함수입니다. 기능 본체가 없다는 것은 무엇을 의미합니까? 이것은 다음과 같이 정의된 함수입니다.
가상 반환 값 함수 이름(형식 매개변수) = 0;
보시다시피 가상 및 가상 함수의 정의는 끝에 =0이 추가되어 이전과 동일합니다. 함수 본문이 없음을 나타내며 순수 가상 함수 입니다. 순수 가상 함수를 포함하는 클래스는 추상 클래스 입니다. 추상 클래스에는 하나 이상의 순수 가상 함수가 있습니다.
추상 클래스의 존재는 외부 세계에 매우 추상적이고 통합된 인터페이스를 제공한 다음 다형성 기능을 통해 다양한 방법을 사용하는 것입니다. 이는 C++ 객체 지향 설계 및 소프트웨어 엔지니어링의 핵심 아이디어 중 하나입니다.
추상클래스의 특징은 다음과 같이 요약된다.
1. 추상 클래스는 객체를 인스턴스화할 수 없습니다. 파생 클래스가 객체의 순수 가상 기능을 완료할 수 있도록 기본 클래스로만 사용할 수 있으며, 그런 다음 이를 인스턴스화하고 사용할 수 있습니다.
2. 파생된 추상 클래스는 여전히 기본 클래스의 순수 가상 함수를 불완전하게 완성하고 추상 클래스로 계속 파생될 수 있습니다. 모든 순수 가상 함수의 정의가 제공될 때까지 이는 구체적인 클래스가 되며 객체를 인스턴스화할 수 없습니다.
3. 추상 클래스는 추상적이고 구체화될 수 없기 때문에 매개변수 유형, 반환 값 또는 캐스트 유형으로 사용할 수 없습니다.
4. 세 번째 항목에 이어 추상 클래스는 다형성 기능을 달성하기 위해 파생 클래스를 가리키는 포인터 또는 참조 유형을 정의할 수 있습니다.