如果我有课:
class A{
public:
A();
void print();
private:
int value;
};
A::A() {value = 0;}
void A::print() {cout << value << endl;}
最后两行中::符号的完整名称是什么?
答案 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
。