C ++派生类构造函数[关闭]

Posted

技术标签:

【中文标题】C ++派生类构造函数[关闭]【英文标题】:C++ Derived class constructors [closed] 【发布时间】:2016-02-12 00:45:41 【问题描述】:

假设我有一个代表图书馆订阅者的类。然后我想创建多个其他派生类,代表不同类型的订阅者,如学生、教授等。

    如何编写派生类构造函数?在我的基类 Subscriber 中,我有一个构造函数,它接受名称、年龄、身份证号等参数。 但是,在我的派生类中,我有额外的参数,例如“schoolName”。如何设置派生类 Student 的构造函数,知道我想调用 Subscriber 的基类构造函数,并向作为 schoolName 的额外参数添加一个值。

    也是我的第二个问题。将共享参数(例如年龄,名称等)(基类和派生类共享)保护为私有是否更好?这样学生可以轻松访问他的姓名,年龄

【问题讨论】:

【参考方案1】:
    基类构造函数:

Subscriber(const char *name, int age);

派生类构造函数:

Student(const char *name, int age, const char *sName)
  :Subscriber(name, age) // We call the base class constructor

    // Do something with sName.

    这取决于您想要实现的目标,但通常最好将参数保持为私有。这样类之间的耦合就更少了,如果您需要访问基类的参数,您可以使用 getter-setter 方法。

【讨论】:

以上是关于C ++派生类构造函数[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

C ++:如何在派生类中定义基类构造函数,如果基构造函数具有带有私有成员的初始化列表[重复]

[C++11 类的改进] --- 继承构造函数和委托构造函数

[C++11]继承构造函数

[C++11 类的改进] --- 继承构造函数和委托构造函数

[C++11 类的改进] --- 继承构造函数和委托构造函数

C++学习之路派生类的构造函数