class CommandManager {
public:
void sendText(std::string command);
static bool CommandManager::started;
private:
bool parseCommand(std::string commands);
void changeSpeed(std::vector<std::string> vec);
void help(std::vector<std::string> vec);
};
Run Code Online (Sandbox Code Playgroud)
这是客户端代码:
CommandManager::started = true;
Run Code Online (Sandbox Code Playgroud)
将这两个文件链接在一起我得到:
1> UAlbertaBotModule.obj:错误LNK2001:未解析的外部符号"public:static bool CommandManager :: started"(?started @ CommandManager @@ 2_NA)
1> C:\ Development\School\cmput350-uofabot\UAlbertaBot\vs2008\Release\UAlbertaBot.dll:致命错误LNK1120:1个未解析的外部
我在哪里错了?
Naw*_*waz 21
你做错了.
class CommandManager {
public:
void sendText(std::string command);
static bool started; //NOT this -> bool CommandManager::started
//...
};
Run Code Online (Sandbox Code Playgroud)
然后将静态成员的定义放在.cpp文件中:
#include "CommandManager.h" //or whatever it is
bool CommandManager::started = true; //you must do this in .cpp file
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用 CommandManager::started在客户端的代码.