c++ - 将基类 2 参数构造函数调用到子类 1 参数构造函数中

标签 c++ class-constructors inherited-constructors

<分区>

正如标题所说,我在子类构造函数中调用基类构造函数时遇到了一些问题

基地:

account.h
    Account(double, Customer*)
account.cpp
    Account::Account(double b, Customer *cu)
    {
    balance = b;
    cust = *cu;
    }

子类:

savings.h
    Savings(double);
savings.cpp
    Savings::Savings(double intRate) : Account(b, cu)
    {
    interestRate = intRate;
    }

我收到的错误是 b 和 cu 未定义。 感谢帮助

最佳答案

想想您如何创建一个SavingsAccount

你能创建一个使用吗

SavingsAccount ac1(0.01);

如果您这样做,该对象的余额是多少?谁将成为该对象的客户

创建 SavingsAccount 时,您需要提供余额以及 Customer。像这样的东西:

Customer* cu = new Customer; // Or get the customer based on some other data
SavingsAccount ac1(100.0, cu, 0.01);

有道理。您正在提供 SavingsAccount 所需的所有数据。要创建这样的对象,您需要适本地定义 SavingsAccount 的构造函数。

Savings::Savings(double b, Customer *cu, double intRate);

这可以通过以下方式正确实现:

Savings::Savings(double b,
                 Customer *cu,
                 double intRate) : Account(b, cu), interestRate(intRate) {}

关于c++ - 将基类 2 参数构造函数调用到子类 1 参数构造函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37368929/

相关文章:

c++ - 无效的预处理指令 mingw

c++ - 从文件中读取名字和姓氏

c++ - 阅读巨大的文本

c++ - 初始化模板类成员的问题

c# - 如何在基类中声明构造函数,以便子类可以在不声明的情况下使用它们?

c++ - 确定 TCP 套接字的状态

javascript - 为什么在定义了一些从对象到变量上下文的方法后丢失了?

java - 难以理解构造函数以及在另一个类中调用它们的原因

c++ - C++ 继承顺序以何种方式影响构造函数?

c++ - 我们如何使用委托(delegate)构造函数从派生类调用基类构造函数