【发布时间】:2018-05-09 18:19:34
【问题描述】:
大约 2 年前,我学习了 Walter Savitch 的 Absolute C++(第 5 版)。本书中声明派生类的方式是这样的
class ChildClass:Public ParentClass{...}
父类类似于
class ParentClass
{Public:
double getVariable() const;
...}
这本书还说,如果我在声明派生类时不想改变父类的成员函数的定义,我不必在派生类声明中重写。例如,如果我不想更改double ParentClass::getVariable() const 的定义,它评估ParentClass 的成员变量,我不必在派生类ChildClass 的声明中再次显式写下它。
最近,我想制定一个项目,并发现多年来发生了一些变化。首先,派生类的声明应该是这样的
class ChildClass:ParentClass{...}
你不应该在ParentClass前面插入Public,否则编译器会报错。其次,我无法通过以下代码访问主程序中的函数double ParentClass::getVariable() const
childInstance.getVariable()
其中childInstance 是ChildClass 的一个实例。
这是我发现的两个变化。您能告诉我如何以正确的方式定义派生类吗?谢谢!
顺便说一句,我使用的编译器是 Cygwin 上的 gcc 5.4.0。
【问题讨论】:
-
您可能应该更喜欢these books 之一,然后将您拥有的东西扔进垃圾箱。
-
Public与public非常不同。一个是错误的,另一个是正确的。 -
你应该注意到c++是一种区分大小写的语言。
Public与public不同。
标签: c++ class c++11 inheritance derived-class