永发信息网

请朋友们帮我解答一下这道C语言的题目.特别是this->a += a;和a+=::a;这两句什么意思

答案:4  悬赏:0  手机版
解决时间 2021-01-18 17:25
请朋友们帮我解答一下这道C语言的题目.特别是this->a += a;和a+=::a;这两句什么意思
最佳答案
这个问题很有意思

我们直接看main函数吧,
首先定义了一个CObj对象,这个对象默认初始化对象成员a和b都为0 (我强烈建议不要这么写,类和变量命名不要这样)。
然后调用对象的func方法,将对象中的a属性赋值为3
接着调用对象的输出函数,这个时候a=3,b=0,所以输出为30

然后他又掉用对象的func2方法,将属性a的值加上最外面定义的变量a,即3+10=13.
最后输出结果,这个时候a=13 ,b=0,所以输出130

代码运行的最后结果是
30
130
全部回答
什么东东!
从主函数开始
CObj obj; //用类CObj定义对象obj,此时调用构造函数,把a和b赋值为0.
obj.func(3);//调用func函数,执行this->a += a;
//this->a中this是系统默认的指针,指向当前的对象,this->a实际就是调用obj中的私有成员a,为了区别形参a
//b是一个变量b +=a;等价于 b=b+a;这句话把私有成员a加了3(传入的参数)
obj.display();//调用函数display,将a,b输出
obj.func2();//调用函数func2
//::是作用域运算符,在这里能使用作用域更大的全局变量a,(本来由于类中已有一个同名变量,不可使用)
//这句话作用就是把a加上了全局变量a,变为13
obj.display();//再次把a、b输出
结果:
30
130
::a指的是int a=10;中的a
this->a指的是int a,b;中的a
void func(int a)
{
//********error********
this->a += a;//this指的是类,this->a是指这个类所定义的变量a; 等号后面的a是函数参数的a, 加this是为了区分这两个a; 如果变量名不同时可以省去this关键字,如test这个函数中的a同样是指类的a,但因为传入参数名为 t ,所以省去this
}
void test(int t)
{
//********error********
a += t;
this->func(a);//这样调用等于a++
}
void func2()
{
//********error********
a+=::a;//指的是"int a,b;"中的a 加"int a=10;"中的a
//第一个中类内定义的a ,第二个 是类外部定义的a,
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我在qq上和一个男生聊的很好没见过面怎么样才
狗狗疫苗查批号可以辩真假吗??为了狗狗的健
为清净手受众行是什么意思
惠州市马安到大亚湾龙海一路坐什么公交去
什么游戏可以安卓和苹果联机
psv联动ps4为什么这游戏不能在psv上显示
240万平方公里是什么概念
(79十40)x3=x的方程解法
小高已经把纸箱里的小昆虫全放了!缩句是什么?
行业数据对分析公司的财务数据有何意义
一个月几次房事正常
如图,抛物线y=x,过Q(0,3)做直线l交抛物
我辈作文,必几经删润 ① ,而后文成。闻欧阳
蔡东藩历朝通俗演义为什么没有隋史演义
谁有马料鸟,虎皮鸟,白眼鸟,三道门。火山加
推荐资讯
马6仪表盘里的图标各代表什么
从下岐这要去汕头二中搭几路车,请解答,谢谢
上海向明高中国际部好吗?有哪些学校的国际部
单选题He_______atthevillageontime.A
patran中导入的模型怎么变为国际单位
汉语,汉字,汉服中的“汉”指的是汉族还是汉
观音灵签94下签 求解签。
求购一台五吨叉车三节臂的升高4,5米
中国的产品为什么要在包装上,写本产品已通过
2.4分之0.8=x分之12
哪首歌歌词中有我宁愿这爱重来
谜语“商山四皓,不如淮南一老”谜底解谜
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?