C++ 为什么说这个是非法的表达式

 我来答
缘来丶缘浅
2013-12-22 · TA获得超过790个赞
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:267万
展开全部

C++面向对象语言中,默认的访问是private的,即只能在当前类中被访问,因此,即使B是A的子类,依旧不能够直接访问到父类中的成员,如果A中修改为public就变成合法了。怕解释的不清楚,添加了一下代码截图:

将楼主给的例子稍微修改了一下,给i, j赋值进行测试(就算不进行赋值也是可以的,不过计算结果会是一串毫无疑义的值,至于为什么我想这个楼主应该有所了解):

而如果像原先那样的话,

楼主可以注意一下console中的内容:

提示你i, j默认是private的,不可访问,因此会不合法。

xgywd
2013-12-22 · TA获得超过260个赞
知道小有建树答主
回答量:148
采纳率:100%
帮助的人:77.5万
展开全部
类的变量都是声明,不能 有计算表达式
声明变量,是不存在具体的空间地址与值,所以计算是非法的.
只有对象初始产生时,系统才会给它分配内存,这些变量才存在.这时会调用这个类的构造函数来具体分配,计算.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
在古雁桥驾车的黄盖
2013-12-22 · TA获得超过850个赞
知道答主
回答量:41
采纳率:0%
帮助的人:53.4万
展开全部
应该在构造函数里面给类成员变量初始化。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式