| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 852 人关注过本帖
标题:作用域问题
只看楼主 加入收藏
情结
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-10-19
收藏
 问题点数:0 回复次数:7 
作用域问题
#include<iostream.h>
class myclass {
public:
int number;
void set(int i);
};
int number=8;
void myclass::set (int i)
{
number=i;
}
void main()
{
myclass my1;
int number=20;
my1.set(6);
cout<<my1.number<<endl;
my1.set(number);
cout<<my1.number<<endl;
my1.set(::number);               //?????????????
cout<<my1.number<<endl;
}

倒数第二条语句my1.set(::number);这种形式表示的number只的是那一个???

[[it] 本帖最后由 情结 于 2008-10-19 19:33 编辑 [/it]]
搜索更多相关主题的帖子: 作用域问题 
2008-10-19 19:01
lmyouya
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-10-17
收藏
得分:0 
外部的吧!我想!
int number=8; 这个可能,新人,错了莫怪,期待高手!

吖吖走了
2008-10-19 19:03
情结
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-10-19
收藏
得分:0 
谢谢
从运行的结果看是全局变量int  number =8;
能告诉我为什么吗?

天行健,君子以自强不息
2008-10-19 19:37
VanHorn
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2008-1-8
收藏
得分:0 
倒数第二条语句my1.set(::number);这种形式表示的number 是外部的int number=8;因为用了外部作用符::

我用VC++6我怕谁?
2008-10-19 19:42
情结
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-10-19
收藏
得分:0 
谢谢
谢谢指点!!!!

天行健,君子以自强不息
2008-10-19 19:45
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
得分:0 
用::是寻找 全局变量
2008-10-19 19:52
Soul寂
Rank: 1
等 级:新手上路
帖 子:117
专家分:1
注 册:2008-9-29
收藏
得分:0 
关于C++中的域作用符::

1.  ::域作用符,用来引用全局的变量、函数等   
  比如   
   
  int   i   =   0;   
   
  void   test()   
  {   
                  int   i   =   3;   
                 cout<<i;                      //输出函数中的局部变量i   
                  cout<<::i;                   //输出全局变量i   
  }


2. 域作用符,用来引用特定的函数或变量。比如说对类中的全局变量的引用;引用上一作用域对象(变量)。


3. 作用域运算符,指定某个范围内的成员,比如   
  class   A   
  {   
  public:   
        int   bbb();   
        //可以在类里面定义bbb,当你在类外面定义的时候就要指定他是属于哪个类的成员函数   
  };   
  int   A::bbb()   
  {   
          cout   <<   "类的外部定义";   
  }   
  如果没有int   A::bbb()只是写了int   bbb()的话就会说bbb没有声明,会出错的


4.最重要的一点:名称是作用域解析运算符"::".   

 下面让我们来了解名字空间的含义   
  名字空间是一种逻辑分组的机制.也就是说,如果有一些声明按照某种标准在逻辑上属于同一个集团,就可以将它们放入同一名字空间,以表明这个事实,例如,我定义一个名字空间N   将变量a,   b   函数f()放入其中     
  int   a;   
  namespace   N{   
  int   a,   b;   
  void   f(){   
      ::a=1;                     //(被屏蔽的)全局a的限定名   
        a=10;                     //非限定名访问内层a   
                  }   
                          }   
   
   
  void   g()   
  {   
      a=10;                       //全局的a   
      N::a=7;                   //名字空间N作用域中的a(限定名)   
   
  }   
  位于作用域解析运算符左边的限定符必须或者是一个名字空间的名字,或者是一个类对象的名字,   
  这也意味着,局部于某个函数的名字不能通过限定名的方式访问
2008-10-20 21:24
情结
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-10-19
收藏
得分:0 
Thank you
谢谢这位大哥!!

天行健,君子以自强不息
2008-10-22 18:46
快速回复:作用域问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.068323 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved