我有两个名为 file_utils.h 和 file_utils.cpp 的文件,其中包含一些由不同类使用的方法和变量。这是它的外观示例:
file_utils.h:
namespace my_namespace
{
extern Foo* foo;
extern Bar* bar;
void my_function(Blah* blah);
}
文件实用程序.cpp
#include "file_utils.h"
void my_namespace::my_function(Blah* blah)
{
foo = 0; // undefined reference to my_namespace::foo
bar = 0; // undefined reference to my_namespace::bar
//...
}
some_class.cpp
#include "file_utils.h"
some_function()
{
my_namespace::my_function(blah);
this->foo = *my_namespace::foo; // will that work ok?
}
所以错误在评论中。如果我删除 extern 关键字,我会得到multiple definition of my_namespace::foo
错误。问题是什么?从设计的角度来看,这甚至是一个好主意,还是我应该尝试使用具有静态成员和方法的类?