c+=b的原型是什么?

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:06:31
for(i=1;i<=a;i++) //A是用户输入的数
{
cout<<"输入第"<<i<<"个数:";
cin>>b;
c+=b;
}
比如这段代码?它的运行过程是什么样的?重点说下c+=b

c=c+b啊..

原型有很多个 以int为例 其中一个是 int operator+=(int);
运行过程是 b调用int的复制构造函数变成形参
调用c的this指针完成+=计算 返回int值
返回的int值再通过调用int的复制构造函数赋给c //这一步没有 如果是c=c+b就有

以上仅是猜测 主要是看到楼上各位太离谱了 还不如我来说说

补充一下 c+=b 和c=c+b 结果一样 但是完全不同的 简单的说c+=b更好

呵呵,看来你接触编程不会太久,这好像是废话,没错,是废话,当我没说,那么来说点有用的吧,

首先,i=1; (这里i是已经申明的变量,)i=1这个赋值语句在真个循环中只执行一次,而i<=a,则要执行 a 次,(当然a>=1才有意义),i++也将会执行 a 次,下面有 while 循环重写一下,

//initialization .....
i = 1;
while(i<=a){
cout<<"Type:"<<i<<" Number:";
cin>>b;//当然这里的b 必须是字符 或者 数字
c = c+b;
i = i+1;
}
这样你是不是看的更清楚点了,是吗? 很好,我很高兴你能真的注意我在说什么。
c += b;
就等于 c = c + b;

是不是觉得很简单,没错,C++就这么简单,快乐编程,快乐生活,呵呵,
祝你能成为将来的 编程 高手,

(最后我想问一下 findlingocode, 两个变量相加,把结果赋给另外一个变量,计算机怎么实现的呢?如果用汇编实现,将一个数放入寄存器eax, 另一个数放入寄存器 ecx, 将 eax的内容加上ecx,然后将ecx的值赋给一个变量,基本数据类型的运算符+=如何带来更高的效率,你说的更好是什么意思呢?)