关于默认形参的问题

-bootblack- -bootblack- 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
class Brass
{
private:
std::string fullName;
long acctNum;
double balance;
public:
Brass(const std::string & s = "Nullbody", long an = -1, double bal = 0.0);
virtual void ViewAcct() const;
virtual ~Brass() {}
};

class BrassPlus : public Brass
{
private:
double maxLoan;
double rate;
double ownsBank;
public:
BrassPlus(const std::string & s = "Nullbody", long an = -1, double bal = 0.0, double ml = 500, double r = 0.11125);
BrassPlus(const Brass & ba, double ml = 500, double r = 0.11125);
virtual void ViewAcct() const;
};

Brass::Brass(const string & s, long an, double bal)
{
fullName = s;
acctNum = an;
balance = bal;
}

void Brass::ViewAcct() const /*关键字virtual只用于类声明的方法原型当中,而在类方法定义中不可使用*/
{
cout << fullName << " " << acctNum << " " << balance << endl;
}

BrassPlus::BrassPlus(const string & s, long an, double bal, double ml, double r) /*方式1*/
{
Brass::Brass(s, an , bal);
maxLoan = ml;
rate = r;
}

//BrassPlus::BrassPlus(const string & s, long an, double bal, double ml, double r) : Brass(s, an , bal) /*方式2*/
//{
// maxLoan = ml;
// rate = r;
//}

Brass是基类,BrassPlus是公有继承类
请问大神:我使用方式1,实参的值根本就没有传递给类成员数据,而使用方式2结果是正确的.
小弟想请问大神:如上的两种方式有区别吗?为什么?
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
-bootblack-
C++ 语言 65,214 成员 250,514 内容