C++/Class
2021. 3. 21. 23:45
순수 가상 함수 (Pure Virtual Function)
body
가 없고 값이0
으로 설정된virtual
함수를 의미한다.body
를 외부에서 정의할 수는 있는데 의미는 없다.
예제
#include <iostream>
class Animal
{
protected:
std::string name_;
public:
Animal(const std::string &name_in)
: name_(name_in)
{}
std::string getName() { return name_; }
virtual void speak() const = 0; // pure virtual function
};
class Cat : public Animal
{
public:
Cat(const std::string & name_in)
: Animal(name_in)
{}
void speak() const
{
std::cout << name_ << " Meow\n";
}
};
class Dog : public Animal
{
public:
Dog(const std::string& name_in)
: Animal(name_in)
{}
void speak() const
{
std::cout << name_ << " Woof\n";
}
};
int main()
{
using namespace std;
Cat("nyang").speak();
Dog("meong").speak();
}
/* stdout
nyang Meow
meong Woof
*/
'C++ > Class' 카테고리의 다른 글
C++ 인터페이스 클래스 (Interface Class) (0) | 2021.03.21 |
---|---|
C++ 추상 기본 클래스 (Abstract class) (0) | 2021.03.21 |
C++ 가상 (함수) 테이블 (Virtual Tables) (0) | 2021.03.20 |
C++ 동적 바인딩 (Dynamic Binding) (0) | 2021.03.20 |
C++ 정적 바인딩 (Static Binding) (0) | 2021.03.20 |