先说结论:
- class默认的是private,struct默认的是public
- public继承:子类可以访问父类除私有成员以外的所有成员
- private继承:子类不能访问父类的任何成员
如果是动态创建对象,必须用public继承,否则创建的时候就会失败。
#include<iostream> class Base{ public: virtual void f() { std::cout << "base" << std::endl; } }; class Test : public Base{ //必须用public public: void f() { std::cout << "test" << std::endl; } }; int main() { Base* b = new Test(); // b->f(); }