关于默认形参的问题
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结果是正确的.
小弟想请问大神:如上的两种方式有区别吗?为什么?
...全文
相关推荐
C++中map和vector作形参时如何给定默认参数?
但是,当我们将它们作为函数的形参时,如何给定默认参数是一个常见的问题。今天,我们将探讨如何在C++中将map和vector作为形参时给定默认参数。首先,我们需要了解map和vector的特点。
javascript 获取函数形参个数
在某些情况下,我们可能需要知道一个函数接受了多少个参数,而这正是本文档所关注的问题。为此,我们可以通过分析函数的源代码字符串来获取形参个数。
qt+信号与槽+形参+跨线程
这种连接方式会将信号放入接收方线程的消息队列,确保槽函数在正确的线程中执行,避免了线程竞争问题。接下来,我们逐一分析不同形参类型的传递:1.
php中函数的形参与实参的问题说明
了解这些基本概念后,可以更有效地编写和调试PHP函数,避免因形参和实参的不当使用导致的问题。
C++默认参数与函数重载及注意事项
**重载与默认参数的冲突**当重载函数与默认参数一起使用时,可能出现二义性问题。例如,如果有两个或更多具有不同参数数量和默认值的重载函数,调用函数时可能不知道应选择哪个版本。


