构造函数之间的继承[关闭]

时间:2014-11-21 16:51:30

标签: c++ class inheritance

所以我在类LimitedBankAccount中有一个构造函数,它继承了类BankAccount简短的构造函数调用另一个构造函数)

BankAccount::BankAccount(std::string name)
{
    _name = name;
    _balance = 0;
}

LimitedBankAccount::LimitedBankAccount(double limit) : BankAccount(_name)
{
    _limit = limit;
}

所以我的问题是:如何调用LimitedBankAccount的构造函数,以便BankAccount中的名称将在LimitedBankAccount中,并将两者保持在一起。

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

LimitedBankAccount::LimitedBankAccount(double limit, string name) : BankAccount(name)
{
    _limit = limit;
}

答案 1 :(得分:0)

您希望您的LimitedBankAccount构造函数也包含名称参数:

// Note that you can use an initializer list to set your member variables
BankAccount::BankAccount(std::string name)
: _name(name), _balance(0)
{ }

LimitedBankAccount::LimitedBankAccount(std::string name, double limit)
: BankAccount(name), _limit(limit)
{ }

答案 2 :(得分:0)

您需要提供一个"名称"派生构造函数中的参数也是如此。最好用初始化列表编写它:

BankAccount::BankAccount(std::string name)
: _name(std::move(name))
, _balance()
{ }

LimitedBankAccount::LimitedBankAccount(double limit, std::string name)
: BankAccount(std::move(name))
, _limit(limit)
{ }

用法:

LimiteBankAccount account(100.0, "Jane Doe");