如何创建函数原型名称空间

mod*_*mer -2 c++

我是cpp的新手,我只是想知道,如何在名称空间的主循环上方添加函数原型,对不起,如果这不是我所谈论的术语的正确术语。但是基本上,我想定义或声明名称空间,就像在主循环上方使用函数一样,以便将其加载到内存中并可以被调用。我知道在主cpp上有一个命名空间可能是不正常的,因此通常您可以只包含头文件,这样做就可以了,但是我只是在四处乱逛,很好奇。

所以基本上这个

void foo(); // declaring so that the function is loaded in to memory to be used

int main(){

    void foo(); 
}

void foo(){  
    do something;
}  
Run Code Online (Sandbox Code Playgroud)

但是使用命名空间而不是foo(); 这将是

namespace fly {

void helicopter() {
    do something;
}
Run Code Online (Sandbox Code Playgroud)

}

Mil*_*nek 5

命名空间不是问题。它们在内存中不存在,您无法调用它们。命名空间仅用于限定其他事物的名称。这样,您可以随意打开和关闭一个名称空间多次,但是不能声明一个名称空间。那什么也没做。

如果要在名称空间中分隔函数的声明和定义,那很好。重新打开定义的名称空间:

namespace fly {
    void helicopter();
}

int main() {
    fly::helicopter();
}

namespace fly {
    void helicopter() {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

或在定义函数名称时完全限定其名称:

namespace fly {
    void helicopter();
}

int main() {
    fly::helicopter();
}

void fly::helicopter() {
    // ...
}
Run Code Online (Sandbox Code Playgroud)