求助,关于C++中全局变量和局部变量的一个屏蔽问题

#include<iostream.h>inti=10;classTestClass{public:TestClass(inti){cout<<"num:"<<i<<en... #include <iostream.h>
int i=10;
class TestClass
{
public:
TestClass(int i)
{
cout<<"num:"<<i<<endl;
i=i+1; //这一行,全局变量屏蔽了局部变量
}
void Print()const
{
cout<<"num"<<i<<endl;
}
private:
int i;
};
void main()
{
TestClass print(0);
int i(0);
print.Print();
cout<<"num"<<i<<endl; //这一行,局部变量屏蔽了全局变量
}

我想问的是,为什么输出第二个num:的时候,全局变量会屏蔽局部变量,为什么到第三个num:的时候,就变成局部变量屏蔽全局变量了?

怎么看到底是谁屏蔽谁呢?
我是个刚学C++的新手,麻烦讲的通俗些详细些,谢谢了~
展开
 我来答
_小心_
2013-03-19
知道答主
回答量:45
采纳率:0%
帮助的人:18.6万
展开全部
第一个i是由TestClass类的构造函数声明的,调用构造函数自然就输出它本事定义的i,但是这个i的存活范围当构造函数执行完成也就没有了,第二个i当然就会执行全局变量的i;第三个i是main()函数里面的i
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
蔷天巧Qw
2013-03-17 · 超过18用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:33.4万
展开全部
在声明了i的函数里,是局部变量起作用。
而在没声明i的函数里,是全局变量起作用。
追问
TestClass的构造函数明明声明了i,可是为什么全局变量还是会对他造成影响?
追答
额,对不起,我学的是c,不是c++看不懂你的程序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式