순수 가상 함수 (Pure Virtual Function)
예제
#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
*/