C++ 派生 class 个构造函数
C++ Derived class constructors
假设我有一个 class 代表图书馆的订户。然后我想创建多个其他派生 classes 代表不同类型的订阅者,例如学生、教授等。
如何编写派生的 class 构造函数?在我的基础 class 订阅者中,我有一个构造函数,它接受诸如姓名、年龄、身份证号码等参数。
但是,在我派生的 classes 中,我有额外的参数,例如 "schoolName"。如何为派生的 class 学生设置构造函数,知道我想调用 Subscriber 的基础 class 构造函数,并将值添加到一个额外的参数,即 schoolName。
也是我的第二个问题。将年龄、姓名等共享参数(基础 class 和派生 class 共享)作为私有参数进行保护是否更可取?这样学生就可以轻松访问他的名字和年龄
- 基础class构造函数:
Subscriber(const char *name, int age);
派生class构造函数:
Student(const char *name, int age, const char *sName)
:Subscriber(name, age) // We call the base class constructor
{
// Do something with sName.
}
- 这取决于您想要实现什么,但通常最好将参数保持为私有。通过这种方式,classes 之间的耦合较少,如果您需要访问基本 class 的参数,您可以使用 getter-setter 方法。
假设我有一个 class 代表图书馆的订户。然后我想创建多个其他派生 classes 代表不同类型的订阅者,例如学生、教授等。
如何编写派生的 class 构造函数?在我的基础 class 订阅者中,我有一个构造函数,它接受诸如姓名、年龄、身份证号码等参数。 但是,在我派生的 classes 中,我有额外的参数,例如 "schoolName"。如何为派生的 class 学生设置构造函数,知道我想调用 Subscriber 的基础 class 构造函数,并将值添加到一个额外的参数,即 schoolName。
也是我的第二个问题。将年龄、姓名等共享参数(基础 class 和派生 class 共享)作为私有参数进行保护是否更可取?这样学生就可以轻松访问他的名字和年龄
- 基础class构造函数:
Subscriber(const char *name, int age);
派生class构造函数:
Student(const char *name, int age, const char *sName)
:Subscriber(name, age) // We call the base class constructor
{
// Do something with sName.
}
- 这取决于您想要实现什么,但通常最好将参数保持为私有。通过这种方式,classes 之间的耦合较少,如果您需要访问基本 class 的参数,您可以使用 getter-setter 方法。