【问题标题】:How to define a derived class in c++?如何在 C++ 中定义派生类?
【发布时间】: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()

其中childInstanceChildClass 的一个实例。

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

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

【问题讨论】:

  • 您可能应该更喜欢these books 之一,然后将您拥有的东西扔进垃圾箱。
  • Publicpublic 非常不同。一个是错误的,另一个是正确的。
  • 你应该注意到c++是一种区分大小写的语言。 Publicpublic 不同。

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


【解决方案1】:

Public 在 C++ 中没有什么特别之处。

你应该写public

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

看这个例子:

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

在你适应了正确的关键字后,应该不会再有问题了。默认情况下,classprivate

【讨论】:

    猜你喜欢
    • 2019-12-22
    • 1970-01-01
    • 2014-04-04
    • 2013-04-19
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    相关资源
    最近更新 更多