"::"在c ++中的含义是什么?

use*_*577 -7 c++ class function

我有代码,我正在寻找这样的代码:

foo::foofa(string n){
    loadFoo(fn);
}
Run Code Online (Sandbox Code Playgroud)

foo :: foofa是什么意思?我不太明白::做什么?谢谢.

编辑:另外,还有另一种方法来写这个没有::或是否需要?

Syn*_*ose 7

:: 是用于标识和指定标识符引用的上下文的范围运算符.

使用非常简单的谷歌搜索,IBM将其描述为:

::(范围解析)运算符用于限定隐藏名称,以便您仍然可以使用它们.如果命名空间范围或全局范围名称被块或类中的同名显式声明隐藏,则可以使用一元范围运算符.


Mik*_*our 7

我不太明白::做什么?

它是范围解析运算符.

如果foo是一个类(或命名空间),并且foofa是在该类中声明的内容,那么在类中,您可以简单地将其称为foofa.但是在课外,您需要使用此运算符来指定您的意思foo::foofa; 其他类或命名空间中可能有其他范围.

另外,有没有另外一种方法来写这个没有::或是否需要?

它在类定义之外是必需的.您可以在类中定义函数:

class foo {
    void foofa(string n) { // No foo:: needed here
        loadFoo(n);
    }
};
Run Code Online (Sandbox Code Playgroud)

如果foo是命名空间,那么你也可以使用using以避免需要,::但这通常是一个坏主意,所以我不会告诉你如何.