1个回答
展开全部
当运算符重载函数是C operator++(C c1,int)的形式时:
1、如果是operator++(c2,5);
调用的时候是传值,所以c2的值不会改变。c2.print();输出5+10i。
2、如果是c2=operator++(c2,5);
c2的新值等于c0的值,而c0的值等于c2原来的值,所以c2的值不变,c2.print();输出5+10i。
当运算符重载函数是C operator++(C &c1,int)的形式时:
1、如果是operator++(c2,5);
调用的时候是传址,所以c2的值会改变。执行c0=c1+c2++;后,c2的值是(4+11i),调用operator++(c2,5);后,c2的值是(3+12i)。所以c2.print();输出3+12i。
2、如果是c2=operator++(c2,5);
执行c0=c1+c2++;后,c2的值是(4+11i),调用operator++(c2,5);后,c2的新值等于c0的值,而c0的值等于c2原来的值,所以c2的值不变,c2.print();输出4+11i。
1、如果是operator++(c2,5);
调用的时候是传值,所以c2的值不会改变。c2.print();输出5+10i。
2、如果是c2=operator++(c2,5);
c2的新值等于c0的值,而c0的值等于c2原来的值,所以c2的值不变,c2.print();输出5+10i。
当运算符重载函数是C operator++(C &c1,int)的形式时:
1、如果是operator++(c2,5);
调用的时候是传址,所以c2的值会改变。执行c0=c1+c2++;后,c2的值是(4+11i),调用operator++(c2,5);后,c2的值是(3+12i)。所以c2.print();输出3+12i。
2、如果是c2=operator++(c2,5);
执行c0=c1+c2++;后,c2的值是(4+11i),调用operator++(c2,5);后,c2的新值等于c0的值,而c0的值等于c2原来的值,所以c2的值不变,c2.print();输出4+11i。
追问
收下我的膝盖
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询