我的代码存在问题。
我有一个名为Engine的课程:
// Engine.h
#include "SaveLoad.h"
class Engine {
friend void SaveLoad::save(Engine& engine);
friend void SaveLoad::load(Engine& engine);
public:
...
这里的关注点是我希望函数save()和load()能够自由地访问和操作Engine的私有数据成员,这就是我为他们辩护的原因。 SaveLoad实际上是另一个头文件中的命名空间,如下所示:
// SaveLoad.h
#include "Engine.h"
namespace SaveLoad {
void save(Engine& engine);
void load(Engine& engine);
}
到目前为止一切似乎都很好。接下来,我从Engine的构造函数中调用load()函数来加载应用程序的已保存数据:
// Engine.cpp
Engine::Engine(...) {
...
SaveLoad::load(*this);
}
我已将Engine传递给load()函数,因此load()可以在启动应用程序时更新Engine的数据成员。
编译完成后,我得到了22个错误消息,有些看似荒谬,有些则令人困惑。其中一些错误是:
并指向SaveLoad :: load(* this)行:
我猜这与我正在尝试使用属于命名空间而不是类的函数的事实有关,或者它与#includes有关,但我真的在外面关于玩代码的想法。