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.我怎么去调用外部函数?
您必须使用"::"外部命名空间解析器:
::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()).