父指针指向子类,其函数调用是编译期和运行期共同决定的
1 如果要调用的函数不是父类的virtual函数,编译期决定了调用父类的该函数
2 如果是虚函数,运行期找指针的虚函数表vtable,再找虚函数的值,然后调用。
抽象类和纯虚函数 pure virtual function
Abstract base classes
class CPolygon {
virtual int area () =0;
};
抽象类不能实例化(编译都过不去)
父指针指向子类,其函数调用是编译期和运行期共同决定的
1 如果要调用的函数不是父类的virtual函数,编译期决定了调用父类的该函数
2 如果是虚函数,运行期找指针的虚函数表vtable,再找虚函数的值,然后调用。
抽象类和纯虚函数 pure virtual function
class CPolygon {
virtual int area () =0;
};
抽象类不能实例化(编译都过不去)