C++中::的用法
2013-10-30 10:57
176 查看
::表示作用域,和所属关系
1)global scope(全局作用域符),用法(::name)
2)class scope(类作用域符),用法(class::name)
3)namespace scope(命名空间作用域符),用法(namespace::name)
例如:
int g;
class A : PPP::B{//表示B类属于PPP命名空间
public:
int a;
int test();
static int add(int a,int b);
}
int A::test(){//表示test属于A类
return 0;
}
int A::add(int a,int b){
return a+b;
}
int test2(){
int a=::g; //用全局变量g
int result=A::add(a,2);//表示静态方法属于A类
return result
}
---------------------------------------
。 -> ::的不同
首先介绍一下C语言中的结构。对于一个结构来说,
struct MyStruct {
int member_a;
};
如果有个变量MyStruct s,那么使用其中的成员元素时可以用
s.member_a = 1;
如果采用指针方法访问,比如MyStruct * ps,那么同样的访问必须用箭头号:
ps->member_a = 1;
::只用在类成员函数和类成员变量中。比如,声明一个类:
class CA {
public:
static int ca_var;
static int add(int a, int b);
int add(int a);
};
那么在实现这个函数时,必须这样书写:
int CA::add(int a, int b)
{
return a + b;
}
另外,双冒号也常用于类静态方法和静态成员的调用。
int test(){
int a=CA::ca_var
return CA::add(a,2);
}
1)global scope(全局作用域符),用法(::name)
2)class scope(类作用域符),用法(class::name)
3)namespace scope(命名空间作用域符),用法(namespace::name)
例如:
int g;
class A : PPP::B{//表示B类属于PPP命名空间
public:
int a;
int test();
static int add(int a,int b);
}
int A::test(){//表示test属于A类
return 0;
}
int A::add(int a,int b){
return a+b;
}
int test2(){
int a=::g; //用全局变量g
int result=A::add(a,2);//表示静态方法属于A类
return result
}
---------------------------------------
。 -> ::的不同
首先介绍一下C语言中的结构。对于一个结构来说,
struct MyStruct {
int member_a;
};
如果有个变量MyStruct s,那么使用其中的成员元素时可以用
s.member_a = 1;
如果采用指针方法访问,比如MyStruct * ps,那么同样的访问必须用箭头号:
ps->member_a = 1;
::只用在类成员函数和类成员变量中。比如,声明一个类:
class CA {
public:
static int ca_var;
static int add(int a, int b);
int add(int a);
};
那么在实现这个函数时,必须这样书写:
int CA::add(int a, int b)
{
return a + b;
}
另外,双冒号也常用于类静态方法和静态成员的调用。
int test(){
int a=CA::ca_var
return CA::add(a,2);
}
相关文章推荐
- 标准C++中的string类的用法
- C++:sprintf()的用法
- c++ vector的用法
- C++中 Const用法小结(转载)
- static在C和C++中的用法和区别
- C++ Map/Multimap 常见用法全解(代码版)
- C++ 标准库的 locale 类用法
- C++中static的用法总结
- C/C++中rand()函数产生随机数的用法
- C++中fread函数和fwrite函数的用法
- C++中namespace的用法
- c++ string reverse 用法
- c++中const用法
- C++:sprintf()的用法
- C++中引用(&)的用法和应用实例
- C++中的c_str()函数用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C/C++中volatile的用法
- RAII惯用法:C++资源管理的利器
- C/C++不定参数的用法