【发布时间】:2010-11-25 11:02:36
【问题描述】:
为什么没有创建我的对象?
我怎样才能从我的构造函数中执行AllReferrals.push_back(this);?
当我这样做时,我被告知
错误 C2065:“AllReferrals”:未声明的标识符
还有
错误 C2228:'.push_back' 左侧必须有类/结构/联合
如果我把列表初始化放在我得到的类之前
错误 C2065:“AllReferrals”:未声明的标识符
这是我的代码:
class Referral
{
public:
string url;
map<string, int> keywords;
static bool submit(string url, string keyword, int occurrences)
{
//if(lots of things i'll later add){
Referral(url, keyword, occurrences);
return true;
//}
//else
// return false;
}
private:
list<string> urls;
Referral(string url, string keyword, int occurrences)
{
url = url;
keywords[keyword] = occurrences;
AllReferrals.push_back(this);
}
};
static list<Referral> AllReferrals;
int main()
{
Referral::submit("url", "keyword", 1);
}
【问题讨论】:
-
我不是你的编译器。你为什么不解释你想问什么?
-
抱歉,只是想让事情变得有趣。
-
@Nona:我仍然有我在上一个问题中给你的关于相同代码的相同建议(它的以前版本):你应该说明你的意图是什么,然后人们可以帮助你使用 cmets关于如何实现你的目标。
标签: c++ list object constructor private