在C++中,用非成员函数重载双目运算符时,其参数表中的参数个数为______
A.0个 B.1个 C.2个 D.3个
答案为什么选C?具体是哪两个? 能不能举个具体的例子?
我是个刚学C++的新手,麻烦讲的通俗些,详细些,谢谢了~
关于成员函数的那个能麻烦讲的再具体些吗?最好举个例子,为什么只用了一个参数,谢谢了~
追答这个书上就有例子啊。
写个书上的例子吧。假设有个人民币类class RMB,有两个private成员unsigned int yuan和jf
如果是定义的成员函数+
RMB RMB::operator + (RMB& s)//只要带一个参数,因为函数隐藏一个参数this
{
unsigned int c = jf +s.jf;//这里其实是this->jf +s.jf
unsigned int d = yuan +s.yuan;//这里其实是this->yuan +s.yuan
RMB result(c,d);
return result;
}
如果是定义的非成员函数+
RMB operator + (RMB& s1, RMB& s2)//要带两个个参数
{
unsigned int c = s1.jf +s2.jf;
unsigned int d = s1.yuan +s2.yuan;
RMB result(c,d);
return result;
}