C ++中双冒号的完整名称

时间:2012-06-07 23:03:55

标签: c++

如果我有课:

class A{
public:
    A();
    void print();
private:
    int value;
};

A::A() {value = 0;}
void A::print() {cout << value << endl;}

最后两行中::符号的完整名称是什么?

3 个答案:

答案 0 :(得分:15)

  

最后两行中::符号的完整名称是什么?

这是“范围解析运算符”。

  

有谁知道答案?

  

这是你问过的最奇怪的问题吗?

没有

答案 1 :(得分:13)

它被称为范围解析运算符。

答案 2 :(得分:7)

它被称为scope resolution operator.

<小时/> 你想知道你可以写什么来代替 ::?好吧,没有别的选择总能奏效。对于您的示例,可以在类的主体中定义这些成员函数,这将是定义类的内联样式:

class A{
  int value;
 public:
  A() {
    value = 0;
  }
  void print() {
    cout << value << endl;
  }
};

这样,您显然无法将定义放在不同的文件中,因此无法单独编译它们。

有时,当::用于解析 namespace 而不是class时,您可以将其替换为either reopening that namespace or pulling it into scope with using namespace