C++中,在类外和类内定义一个同名变量,这两个变量有什么关系

 我来答
Roxxette
2013-03-26 · TA获得超过828个赞
知道小有建树答主
回答量:1341
采纳率:0%
帮助的人:821万
展开全部
作用域不一样,类内的变量会覆盖类外的变量。所以在类内若要访问类外同名变量,必须显式指定其作用域.例如
int x;
class A { int x;
A() { x = 0; ::x = 1; }
}
追问
这里的x=0,这个x还要不要加一个this指针
追答
不需要,因为x在作用域里,而且没有歧义,但是如果这样就需要了:
int x;
class A { int x;
A() { int x;
x = -1; // A()中的局部变量
this->x = 0; // class的成员变量
::x = 1; }
}
ehlhyr
2013-03-26
知道答主
回答量:30
采纳率:0%
帮助的人:13.9万
展开全部
在类内使用的是叫局部变量
类外是全局变量
两个互不相关
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kosl90
2013-03-26 · TA获得超过440个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:230万
展开全部
名字一样的关系
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式