多态
using namespace std;
class Base {
public:
virtual void tall();
};
class People : Base {
public:
void tall() {
cout << "people" << endl;
};
};
在 main 方法中,我们不能使用 Base base; 这行代码,此时的 tall 没有实现,函数表(vtable)的引用是未定义的,故而无法执行。但我们可以使用 People people; 然后 people.tall(); 或 (&people)->tall(); 因为People实现或者说重写、覆盖了 Base 的纯虚方法 tall(),使其在 People 类中有了定义,函数表挂上去了,于是可以诞生实例了。
int main() {
// Base base;//不可用
People people;//可用
people.tall();
(&people)->tall();
return 0;
}

浙公网安备 33010602011771号