我在这里有一个单例类,称为Master
. 此类具有执行特定工作的其他一些实体。该类Master
具有get
这些实体的方法。
namespace Framework {
class Master {
private:
NetworkController * mNetworkController;
FileController * mFileController;
static Master * gInstance;
public:
static Master * getInstance();
NetworkController * getNetworkController();
FileController * getFileController();
}
}
我在整个程序中都使用这些实体,如下所示:
Framework::Master::getInstance() -> getNetworkController()
Framework::Master::getInstance() -> getFileController()
如您所见,输入有点长且耗时。所以我尝试将它们放入宏中,如下所示:
#define NETWORK_CONTROLLER() Framework::Master::getInstance() -> getNetworkController()
#define FILE_CONTROLLER() Framework::Master::getInstance() -> getFileController()
namespace Framework {
class Master {
...
}
}
但是,我发现这种方法混乱且令人困惑。所以我尝试inline
了方法并将它们添加到一个头文件中。
#ifndef __FrameworkHelper__
#define __FrameworkHelper__
inline Framework::NetworkController * MasterNetworkController() { return Framework::Master::getInstance() -> getNetworkController(); }
inline Framework::FileController * MasterFileController() { return Framework::Master::getInstance() -> getFileController(); }
#endif
但是当我尝试在不同的类上使用它们时,它给了我编译错误:
error C2653: 'Framework' : is not a class or namespace name
我不知道为什么它会抛出这样的错误。如何使这些内联方法在整个程序中都可用?