如何在 C++ 中定义派生的 class?

How to define a derived class in c++?

大约 2 年前,我学习了 Walter Savitch 的 Absolute C++(第 5 版)。本书声明派生class的方法是

class ChildClass:Public ParentClass{...}

其中父项 class 类似于

class ParentClass
{Public:
 double getVariable() const;
...}

这本书还说,如果我不想在声明派生class时更改父class的成员函数的定义,则不必重写它派生的 class 声明。例如,如果我不想更改 double ParentClass::getVariable() const 的定义,它评估 ParentClass 的成员变量,我不必在派生 [=39] 的声明中再次显式写下它=] ChildClass

最近想做一个项目,发现这些年有些变化。首先,派生 class 的声明应该类似于

class ChildClass:ParentClass{...}

你不应该在ParentClass前面插入Public,否则编译器会报错。其次,我无法通过以下代码

访问主程序中的函数double ParentClass::getVariable() const
childInstance.getVariable()

其中 childInstanceChildClass 的实例。

这是我发现的两个变化。您能告诉我如何以正确的方式定义派生的 class 吗?谢谢!

顺便说一下,我使用的编译器是 Cygwin 上的 gcc 5.4.0。

Public 在 C++ 中没什么特别的。

你应该写 public.

即使语法突出显示也应该告诉您错误。

看这个例子:

if else for while public
Am Tree Hat House Public
                  ^~~~~~

适应正确的关键字后,应该就没有问题了。默认情况下 classprivate.