- 纯虚函数:在声明虚函数时被初始化为0的函数,用来定义接口规范
- 抽象类:含有纯虚函数的类,不可以实例化(不可以创建对象)
- 抽象类可以包含非纯虚函数、成员变量
- 如果父类是抽象类,子类没有完全重写纯虚函数,那么这个子类是抽象类
#include<iostream>
using namespace std;
struct Animal{
virtual void speak() = 0;
virtual void run() = 0;
};
struct Dog :Animal{
void speak() {
cout << "Dog::speak()" << endl;
}
};
struct Cat :Animal{
void speak() {
cout << "Cat::speak()" << endl;
}
void run() {
cout << "Cat::run()" << endl;
}
};
struct Pig :Animal{
void speak() {
cout << "Pig::speak()" << endl;
}
void run() {
cout << "Pig::run()" << endl;
}
};
struct Cat :Animal{
void speak() {
cout << "Cat::speak()" << endl;
}
void run() {
cout << "Cat::run()" << endl;
}
Cat() {
cout << "Cat::Cat()" << endl;
}
~Cat() {
cout << "Cat::~Cat()" << endl;
}
};
int main() {
getchar();
return 0;
}