我是C ++新手。我有一个foo.cpp文件,它定义了一个函数,
void sort() {
// details of sort algorithm
}
Run Code Online (Sandbox Code Playgroud)
我没有在相应的头文件中定义它,但是没有编译错误。我注意到这被视为静态方法。是这样吗 我在这里到底做了什么?
编辑:
我注意到在此方法内部,我不能使用它(例如:this-> bar),因此我假设这是一个静态函数。当我想要一个“私有”方法,却忘了在头文件中声明它时,这实际上发生了。实际使用这种功能吗?
它在该编译单元之外不是不可见的,它不绑定到单个编译单元,它只是一个需要声明才能被调用的定义。像任何其他定义一样。
wf.cpp:
#include <iostream>
void f(){ std::cout<< "f();"; }
Run Code Online (Sandbox Code Playgroud)
omg.cpp:
void f(); // I can declare wherever I use it.
int main(){ f(); }
Run Code Online (Sandbox Code Playgroud)
$ g++ wtf.cpp omg.cpp && ./a.out
输出: f();