- 双冒号(::)的用法
- 表示 “域操作符”
例如:声明了一个类A,在类A中声明一个成员函数void foo(),但没有在类A的声明中给出函数foo的定义,那么在类外定义foo时,就要写成
void A::foo()
表示foo()函数是类A的成员函数。
- 表示引用成员函数和变量,作用域成员运算符
例如:
System::Math::Sqrt()
相当于
System.Math.Sqrt()
- 冒号(:)的用法
- 构造函数后面的冒号起分割的作用,是类给成员变量赋值的方法,初始化列表,更适用于const成员变量
例如:
struct foo{
foo()
:Node("node"), _temp(temp)
{}
};
- public:和private:后面的冒号,表示后面定义的所有成员都是公有或私有的,直到下一个public: 或 private: 出现为止。private: 为默认处理。
例如:
public:
int foo(int a){}
private:
int a;
std::string s;
- 类名冒号后面的是用来定义类的继承
例如:
class 派生类名 : 继承方式 基类名
{
派生类的成员
};
继承方式:public,private和protected,默认处理是public
- 表示机构内位域的定义(即该变量占几个bit空间)
例如:
typedef struct _foo{
int a:4;
int b;
};foo