所以我有靜態成員我的頭文件:C++類的靜態成員
#ifndef PROFILE_MANAGER_H
#define PROFILE_MANAGER_H
#include <map>
#include <vector>
using namespace std;
using std::vector;
namespace Engine
{
class ProfileManager
{
private:
static map<const char*, vector<float>> profiles;
static map<const char*, vector<float>>::iterator it;
static pair<map<const char*, vector<float>>::iterator, bool> ret;
};
}
#endif
而且在我的cpp文件我有定義:
#include "ProfileManager.h"
namespace Engine
{
map<const char*, vector<float>> ProfileManager::profiles;
map<const char*, vector<float>>::iterator ProfileManager::it;
pair<map<const char*, vector<float>>::iterator, bool> ProfileManager::ret;
}
鏈接器總是抱怨的靜態成員是即使我已經在cpp文件中定義了它們,也是無法解析的外部(LNK2001)。任何想法爲什麼?
我更驚訝*編譯器*不會抱怨丟失的分號! –
更不用說重複使用右移運算符。 – WhozCraig
你確定你正在編譯cpp文件? –