c++编程中关于ABC的一个疑问
c++primerplus第13章中的例子:classAcctABC{...};classBrass:publicAcctABC{...};classBrassPlus:...
c++primer plus第13章中的例子:
class AcctABC{...};
class Brass : public AcctABC{...};
class BrassPlus : public AcctABC{...};
AcctABC是基类,Brass和BrassPlus都是派生类。构造函数如下:
AcctABC(const string & s = "Nullbody", long an = -1,double bal = 0.0);
AcctABC::AcctABC(const string & s, long an, double bal)
{
fullName = s;
acctNum = an;
balance = bal;
}
Brass(const string & s = "Nullbody", long an = -1,
double bal = 0.0) :AcctABC(s, an, bal){};
BrassPlus(const string & s = "Nullbody", long an = -1,double bal = 0.0,
double ml = 500,double r = 0.10);
BrassPlus(const Brass & ba, double ml = 500, double r = 0.1);
BrassPlus::BrassPlus(const Brass & ba, double ml, double r):AcctABC(ba) //问题在这里,这里的构造函数AcctABC()接受了一个Brass &的类,但是AcctABC类没有这样的构造函数,即使是利用复制构造函数那么它的参数类型也应该是 AcctABC &。这里是否执行了向上强制转换?
{
maxLoan = ml;
owesBank = 0.0;
rate = r;
} 展开
class AcctABC{...};
class Brass : public AcctABC{...};
class BrassPlus : public AcctABC{...};
AcctABC是基类,Brass和BrassPlus都是派生类。构造函数如下:
AcctABC(const string & s = "Nullbody", long an = -1,double bal = 0.0);
AcctABC::AcctABC(const string & s, long an, double bal)
{
fullName = s;
acctNum = an;
balance = bal;
}
Brass(const string & s = "Nullbody", long an = -1,
double bal = 0.0) :AcctABC(s, an, bal){};
BrassPlus(const string & s = "Nullbody", long an = -1,double bal = 0.0,
double ml = 500,double r = 0.10);
BrassPlus(const Brass & ba, double ml = 500, double r = 0.1);
BrassPlus::BrassPlus(const Brass & ba, double ml, double r):AcctABC(ba) //问题在这里,这里的构造函数AcctABC()接受了一个Brass &的类,但是AcctABC类没有这样的构造函数,即使是利用复制构造函数那么它的参数类型也应该是 AcctABC &。这里是否执行了向上强制转换?
{
maxLoan = ml;
owesBank = 0.0;
rate = r;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询