鱼C论坛

 找回密码
 立即注册
查看: 3401|回复: 6

c++中 “::”这个符号什么时候用?

 关闭 [复制链接]
头像被屏蔽
发表于 2011-5-30 11:00:58 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-30 11:33:58 | 显示全部楼层
标识某个成员是属于哪个类的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-30 11:44:23 | 显示全部楼层
最经常的是在类外定义类的成员函数的时候用到。如:
class A{
   void test();
};
void A::test{
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-30 13:13:28 | 显示全部楼层
本帖最后由 bbchylml 于 2011-5-30 13:26 编辑

::作用域运算符, 左部表示右部符号的作用域, 左部为空时表示全局作用域.
/*具有文件作用域的变量是全局变量;具有函数作用域或块作用域的变量是局部变量。
全局变量声明时默认初始值为0,。当局部变量与全局变量同名,在块内就会屏蔽全局
变量,即在函数里面只是局部变量有效。如果想在函数内访问全局变量,那么就用到
域运算符"::"。
**/

  1. #include <iostream.h>
  2. int x;
  3. void main()
  4. {   
  5.         int x = 256;
  6.         cout << "global variable x =" << ::x << endl; //global variable x =0       
  7.         cout << "local variable x =" << x << endl;    //local variable x =256
  8. }
复制代码
还有个例子也是同样道理,
  1. #include <iostream>
  2. using namespace std;

  3. int max(int a,int b)
  4. {
  5.         a = 1;
  6.         b = 2;
  7.         return ( a > b ? a : b );
  8. }

  9. void main()
  10. {   
  11.         std::cout << "max(1,2)=" << ::max(1,2) << std::endl;
  12. }
复制代码
类里面也是这样的,下面声明类A的构造函数,标识属于什么类的成员。
class A{
   void test();
};
void A::test{
}


以上简单介绍一下,详细的还需要自己去研究。希望对你有帮助吧~:lol

点评

很好,其实::主要是为了防止变量、函数同名的问题,除了LS说的用途外,::主要和名字空间namespace 联合使用。事实上全局空间就是一个特殊的没有名字的名字空间。  发表于 2011-5-30 13:20

评分

参与人数 1荣誉 +3 鱼币 +2 收起 理由
仰望天上的光 + 3 + 2 赞一个!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
 楼主| 发表于 2011-6-1 10:49:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-2 10:10:52 | 显示全部楼层
很不错哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-10 14:35:02 | 显示全部楼层
GOOD!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 23:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表