C++中,全局变量不能赋值,可以初始化,但类中为何不能赋值,也不能初始化?

全局中,inta=1;//这样写可以,声明定义直接初始化inta;a=1;//报错而类里面,只能写inta;不能给他立刻初始化更别说赋值。不能赋值可以理解,但全局可以初始... 全局中,int a =1;//这样写可以,声明定义直接初始化

int a; a= 1; //报错

而类里面,只能写int a ; 不能给他立刻初始化更别说赋值。

不能赋值可以理解,但全局可以初始化,为何类里不能直接初始化?
展开
 我来答
qmg1023
2013-11-11 · TA获得超过888个赞
知道小有建树答主
回答量:804
采纳率:0%
帮助的人:909万
展开全部
类的值归属于不同的实例,或者说this指针。也就是类里面的a可能有很多份。

a的赋值需要在构造函数中完成。

只有static的可以赋值,其他的需要在类初始化的时候赋值。
更多追问追答
追问
我不在构造函数中赋值,只在一般成员函数里赋值,为何又可以?
追答
一般成员函数调用也会传入一个this指针,指向某个对象实例,因此也是可以的。

语法不允许在类定义中赋值吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式