c++中:和::的用途
2015-06-03 12:11
246 查看
双冒号(::)用法
1、作用域符号::的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分
如:A,B表示两个类,在A,B中都有成员member。那么
A::member就表示类A中的成员member
B::member就表示类B中的成员member
2、全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分如:
(以下部分转自http://blog.csdn.net/zimingjushi/article/details/6549390/)
冒号(:)用法
1、表示机构内位域的定义(即该变量占几个bit空间)
2、构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型。
3、public:和private:后面的冒号,表示后面定义的所有成员都是公有或私有的,直到下一个"public:”或"private:”出现为止。"private:"为默认处理。
4、类名冒号后面的是用来定义类的继承。
1、作用域符号::的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分
如:A,B表示两个类,在A,B中都有成员member。那么
A::member就表示类A中的成员member
B::member就表示类B中的成员member
2、全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分如:
char zhou; //全局变量 void sleep() { char zhou; //局部变量 char(局部变量) = char(局部变量) *char(局部变量) ; ::char(全局变量) =::char(全局变量) *char(局部变量); }3、::是C++里的“作用域分解运算符”。比如声明了一个类A,类A里声明了一个成员函数voidf(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成voidA::f(),表示这个f()函数是类A的成员函数。例如:
class CA { public: int ca_var; int add(int a, int b); int add(int a); }; //那么在实现这个函数时,必须这样书写: int CA::add(int a, int b) { return a + b; } //另外,双冒号也常常用于在类变量内部作为当前类实例的元素进行表示,比如: int CA::add(int a) { return a + ::ca_var; } //表示当前类实例中的变量ca_var。(以上部分转自http://www.cnblogs.com/charley_yang/archive/2011/02/24/1964217.html)
(以下部分转自http://blog.csdn.net/zimingjushi/article/details/6549390/)
冒号(:)用法
1、表示机构内位域的定义(即该变量占几个bit空间)
typedef struct _XXX{ unsigned char a:4; unsigned char c; } ; XXX
2、构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型。
struct _XXX { _XXX() : y(0xc0) {} };
3、public:和private:后面的冒号,表示后面定义的所有成员都是公有或私有的,直到下一个"public:”或"private:”出现为止。"private:"为默认处理。
4、类名冒号后面的是用来定义类的继承。
class 派生类名 : 继承方式 基类名 { 派生类的成员 };继承方式:public、private和protected,默认处理是public。
相关文章推荐
- Program Pack
- java中调用c(c++)写的dll文件的实现及步骤(转)
- [erlang]erlang与C++的两种通讯方式
- Java调用C/C++实现的DLL动态库——JNI(转)
- C++里的构造函数为什么不能为虚函数
- C++数字字符串转换
- java调用C/C++写的dll(转)
- C++服务器框架搭建笔记一
- MFC CTooLBar 工具栏显示提示信息ToolTip
- C语言函数调用栈
- c++模板 template
- C++细节4
- C++细节4
- AutoCppHeader AutoHeader 自动根据CPP 或C文件 来生成头文件。
- 链接脚本在编程中的高级运用之二——运行时库和C++特性支持
- C++用于修饰的keyword
- mysql导入source数据库sql的C++实现和封装
- C++关键字explicit
- 深度解析C++模版
- VC6捕获鼠标事件(移动、单击等)的一些总结(MFC消息、DriectInput、钩子)