从类方法调用"外部"函数

blc*_*llo 5 c++ methods class function

我有一个函数,我想从类方法中调用.该函数位于名为mergeSort.cpp的文件中.以下是该类实现的.cpp文件的片段:

// other includes
#include "mergeSort.cpp"

// other methods
void Servers::sortSites() {
 mergeSort(server_sites.begin(), server_sites.end(), siteCompare);
}
// remaining methods 
Run Code Online (Sandbox Code Playgroud)

当我尝试编译时,我得到错误,说无法找到mergeSort.我认为这是因为它试图调用Servers :: mergeSort.我怎么去调用外部函数?

Die*_*lla 7

您必须使用"::"外部命名空间解析器:

::mergeSort(...);
Run Code Online (Sandbox Code Playgroud)

这告诉编译器在外部命名空间中查找该函数.如果在另一个名称空间或类中定义了此特定函数,则必须明确指定它:

Namespace::mergeSort(...);
Run Code Online (Sandbox Code Playgroud)

如果您不想在每次使用时完全解析名称,可以使用以下命令将名称导入当前名称空间:

using namespace Namespace;
Run Code Online (Sandbox Code Playgroud)

要么

using Namespace::mergeSort;
Run Code Online (Sandbox Code Playgroud)

(定义Namespace的名称在哪里mergeShort()).