如何在 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()
其中 childInstance
是 ChildClass
的实例。
这是我发现的两个变化。您能告诉我如何以正确的方式定义派生的 class 吗?谢谢!
顺便说一下,我使用的编译器是 Cygwin 上的 gcc 5.4.0。
Public
在 C++ 中没什么特别的。
你应该写 public
.
即使语法突出显示也应该告诉您错误。
看这个例子:
if else for while public
Am Tree Hat House Public
^~~~~~
适应正确的关键字后,应该就没有问题了。默认情况下 class
是 private
.
大约 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()
其中 childInstance
是 ChildClass
的实例。
这是我发现的两个变化。您能告诉我如何以正确的方式定义派生的 class 吗?谢谢!
顺便说一下,我使用的编译器是 Cygwin 上的 gcc 5.4.0。
Public
在 C++ 中没什么特别的。
你应该写 public
.
即使语法突出显示也应该告诉您错误。
看这个例子:
if else for while public
Am Tree Hat House Public
^~~~~~
适应正确的关键字后,应该就没有问题了。默认情况下 class
是 private
.