【问题标题】:Syntax for Function Prototyping in Header Files头文件中函数原型的语法
【发布时间】:2010-12-06 15:41:25
【问题描述】:

假设我有以下函数原型:

void MyFunction(int MyParameter);

具有以下定义:

void MyFunction(int MyParameter)
{
    // Do stuff here.
}

如果我有一个带有命名空间的头文件(没有main 函数),它们应该放在哪里?原型是否进入命名空间而定义在其外部?还是两个都进去?

【问题讨论】:

    标签: c++ syntax user-defined-functions function-prototypes


    【解决方案1】:

    如果你选择有一个命名空间,两者都应该在里面:

    .h:

    namespace MyNameSpace {
    void MyFunction(int MyParameter);
    }
    

    .cpp:

    void MyNameSpace::MyFunction(int MyParameter)
    {
        // Do stuff here.
    }
    

    【讨论】:

    • 在一个不相关的旁注中,为什么第二个文件必须是 .cpp?
    • 它不必是“.cpp”。它必须是您的 C++ 编译器可以识别的东西。例如 .c、.cpp 或 .cxx
    • 只是为了调试(看看有没有语法错误),还是有其他原因?
    • 您可以查看stackoverflow.com/questions/1545080/…了解更多信息
    【解决方案2】:

    如果您的原型不在命名空间中,那么您不必将定义放在命名空间中。如果原型在命名空间中,则定义应该在同一个命名空间中。

    【讨论】:

      【解决方案3】:

      它们都必须在命名空间中

      【讨论】:

        猜你喜欢
        • 2013-08-29
        • 1970-01-01
        • 1970-01-01
        • 2017-12-13
        • 1970-01-01
        • 2019-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多