【发布时间】:2015-05-31 21:07:21
【问题描述】:
我已经创建了这个“社交名流”课程和一个单独的“派系”课程。 Socialite 对象的参数之一是指向“Factions”的指针向量。我之前使用过没有“派系列表”作为参数的 Socialite 类,它运行良好。
class Socialite
{
public:
Socialite();
Socialite(string lastName, string firstName, string userId, string picture, string website, string description, list<Faction*> factionlist);
//other methods
void newSocialite(string lastName, string firstName, string userId, string picture, string website, string description, list<Faction*> factionlist);
void deleteSocialite(string lastName, string firstName, string userId, string picture, string website, string description, list<Faction*> factionlist);
//other methods
private:
string lastName_;
string firstName_;
string userId_;
string picture_;
string website_;
string description_;
vector<Socialite *> socialiteptr_;
list<Faction*> factionlist_;
};
但是,当我包含它时,我得到了错误:
error C2976: 'std::list' : too few template arguments
和
error C2065: 'Faction' : undeclared identifier
每次我的方法/构造函数包含派系列表时,都在同一行。我查找的解决方案涉及使用模板的代码,我没有使用任何模板,所以我不明白出了什么问题。
额外信息:我的指针向量是这样存储的:
vector<Faction *> factionptr_;
我以这样的方式将其列在列表中:
list<Faction*> list_factions(factionptr_.begin(), factionptr_.end());
我做错了什么?
【问题讨论】:
-
"'Faction' : undeclared identifier" 是你的问题。编译器不知道
Faction是什么。如果您在其他类声明之前转发声明class Faction;,很可能会解决问题。 -
@WojtekSurowka 谢谢,我会试试这个。
标签: c++ list class pointers vector