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

Yuk*_*awa 6 c++

如果我有课:

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

A::A() {value = 0;}
void A::print() {cout << value << endl;}
Run Code Online (Sandbox Code Playgroud)

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

R. *_*des 15

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

它是"范围解析运算符".

有人知道答案吗?

是.

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

没有.

  • 这是如何用风格回答问题. (3认同)
  • 我非常喜欢这个答案. (2认同)
  • 在缺点方面,时间异常糟糕,当你输入这个时,我编辑了多余的副本! (2认同)

Joh*_*0te 13

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


lef*_*out 7

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


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

class A{
  int value;
 public:
  A() {
    value = 0;
  }
  void print() {
    cout << value << endl;
  }
};
Run Code Online (Sandbox Code Playgroud)

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

在其他时候,当::用于解析a namespace而不是a时class,可以用重新打开该命名空间或将其拉入范围using namespace来替换.