定义派生类时,为啥基类标记为“public”? [复制]

Posted

技术标签:

【中文标题】定义派生类时,为啥基类标记为“public”? [复制]【英文标题】:When defining a derived class, why is the base class marked "public?" [duplicate]定义派生类时,为什么基类标记为“public”? [复制] 【发布时间】:2012-03-21 23:56:32 【问题描述】:

可能重复:Difference between private, public and protected inheritance in C++

我讲义中的一个例子是

class TransportShip : public GameUnit 
    int capacity;

    public:
         ...

为什么我们需要在基类名称前加上“public”修饰符?如果它不存在意味着什么?

【问题讨论】:

阅读您的 C++ 书中关于公共、受保护和私有继承的章节。 parashift.com/c++-faq-lite/private-inheritance.html 我们实际上没有教科书 -_- 不过感谢您提供链接 @badatmath 那就来一份吧! 像《21 天自学 C++》这样的书是一个很好的起点。 【参考方案1】:

这意味着基类是私有的。

对于一个类,默认情况下,基类和所有成员都是私有的。对于结构,默认情况下,基类和所有成员都是公共的。

如果基础是私有的,那么只有类的成员才能访问基础的成员。

【讨论】:

以上是关于定义派生类时,为啥基类标记为“public”? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

继承中的函数定义

当有多个派生类时,如何使用基类指针访问派生类的函数成员?

c ++:将指针传递给基类时访问派生类方法?

从派生类重新定义基类中定义的结构

unity背包为啥要定义基类

序列化派生类时不包括 ProtoBuf.net 基类属性