将 base class 2 参数构造函数调用为 subclass 1 参数构造函数
Invoking base class 2 argument constructor into subclass one argument constructor
正如标题所说,我在子class构造函数
中调用基础class构造函数时遇到了一些问题
基地:
account.h
Account(double, Customer*)
account.cpp
Account::Account(double b, Customer *cu)
{
balance = b;
cust = *cu;
}
子class:
savings.h
Savings(double);
savings.cpp
Savings::Savings(double intRate) : Account(b, cu)
{
interestRate = intRate;
}
我收到的错误是 b 和 cu 未定义。
感谢帮助
在你的 subclass Savings
你需要在某处定义 b
和 cu
以传递给基础 Account
的构造函数,例如:
Savings::Savings(double b, Customer* cu, double intRate) : Account(b, cu) {
interestRate = intRate;
}
这样 Savings
的构造函数采用 double
和 Customer*
参数传递给基础 class.
的构造函数
我认为之前的答案是错误的,因为您不必在帐户中也输入 intRate。
所以:
Savings::Savings(double b, Customer* cu, double intRate) : Account(b, cu)
{ interestRate = intRate; }
想一想如何创建 SavingsAccount
。
你能用
创建一个吗
SavingsAccount ac1(0.01);
如果你这样做了,那么该对象的余额是多少?谁将成为该对象的 Customer
。
创建 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) {}
正如标题所说,我在子class构造函数
中调用基础class构造函数时遇到了一些问题基地:
account.h
Account(double, Customer*)
account.cpp
Account::Account(double b, Customer *cu)
{
balance = b;
cust = *cu;
}
子class:
savings.h
Savings(double);
savings.cpp
Savings::Savings(double intRate) : Account(b, cu)
{
interestRate = intRate;
}
我收到的错误是 b 和 cu 未定义。 感谢帮助
在你的 subclass Savings
你需要在某处定义 b
和 cu
以传递给基础 Account
的构造函数,例如:
Savings::Savings(double b, Customer* cu, double intRate) : Account(b, cu) {
interestRate = intRate;
}
这样 Savings
的构造函数采用 double
和 Customer*
参数传递给基础 class.
我认为之前的答案是错误的,因为您不必在帐户中也输入 intRate。 所以:
Savings::Savings(double b, Customer* cu, double intRate) : Account(b, cu)
{ interestRate = intRate; }
想一想如何创建 SavingsAccount
。
你能用
创建一个吗SavingsAccount ac1(0.01);
如果你这样做了,那么该对象的余额是多少?谁将成为该对象的 Customer
。
创建 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) {}