C++的类继承方式

先说结论:

  • 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(); 
}

参考链接:https://zhidao.baidu.com/question/157304335.html

原文地址:https://www.cnblogs.com/lfri/p/12717884.html