如何在c ++中定义派生类?

时间:2017-11-26 10:39:03

标签: c++ class c++11 inheritance derived-class

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

class ChildClass:Public ParentClass{...}

其中父类类似于

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

本书还说,如果我在声明派生类时不想更改父类的成员函数的定义,我不必在派生类声明中重写它。例如,如果我不想更改double ParentClass::getVariable() const的定义,它定义ParentClass的成员变量,我不必在派生类{{的声明中再次明确地将其写下来1}}。

最近,我想制定一个项目,并发现多年来发生了变化。首先,派生类的声明应该看起来像

ChildClass

您不应在class ChildClass:ParentClass{...} 前面插入Public,否则编译器会抱怨。其次,我无法通过以下代码访问主程序中的函数ParentClass

double ParentClass::getVariable() const

其中childInstance.getVariable() childInstance的实例。

这是我发现的两件事。你能告诉我如何以正确的方式定义派生类吗?谢谢!

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

1 个答案:

答案 0 :(得分:0)

Public在C ++中并不特别。

你应该写public

即使是语法高亮也应该告诉你错误。

见这个例子:

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

在您使用正确的关键字后,应该没有更多问题。默认情况下,class的内容为private