6

如果我有一堂课:

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

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

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

4

3 回答 3

15

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

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

有人知道答案吗?

是的。

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

不。

于 2012-06-07T23:06:00.227 回答
13

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

于 2012-06-07T23:06:33.770 回答
7

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


你想知道你可以写什么而不是::?好吧,没有其他方法总是有效的。对于您的示例,可以只在类的主体中定义这些成员函数,这将是定义类的内联样式:

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

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

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

于 2012-06-07T23:05:19.057 回答