我对 c++ 的许多领域还是有点陌生,其中之一是一般的 .cpp 和 .h 文件组织。
我正在创建一个包含一些结构和函数的命名空间。我想在类似于此的 .h 文件中声明命名空间
//objectname.h
namespace ObjectName
{
Object Function(arguments);
}
function.h 中的声明
//function.h
//includes declarations used in the function definition as well
//as possibly a redundant function declaration.
Object Function(arguments);
然后是function.cpp中的定义
//function.cpp
#include "Function.h"
Object Function(arguments)
{
....
}
因此您可以抽象地看到 objectname.h
中的命名空间,function.h
中的函数特定声明和 function.cpp 中的函数定义。
一如既往,非常感谢任何建议。 (也是基于 Windows 的 C++)
最佳答案
这很好
//objectname.h
namespace ObjectName
{
Object Function(arguments);
}
您根本不需要 function.h。如果你想将命名空间拆分成几个文件,你可以这样做:
//function.h
//includes declarations used in the function definition as well
//as possibly a redundant function declaration.
namespace ObjectName
{
Object Function(arguments);
}
换句话说,您需要再次将声明包装在命名空间中。 (这是一个进阶话题,我不会做。)
Function.cpp 只需要说它定义的函数:
//function.cpp
#include "ObjectName.h"
Object ObjectName::Function(arguments)
{
....
}
注意使用头文件的语句是#include
,不是using
关于c++ - 有没有办法在单独的 .h 和 .cpp 文件中定义在命名空间中声明的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36006468/