Pourquoi mon objet n'est-il pas créé?
Et comment puis-je exécuter AllReferrals.push_back(this);
depuis mon constructeur?C++ conserver une liste d'objets et appeler un constructeur via une autre fonction
Quand je le fais comme si, on me dit
erreur C2065: 'AllReferrals': identificateur non déclaré
ainsi que
erreur C2228: gauche ' .push_back 'doit avoir class/struct/union
Si je mets l'initialisation de la liste avant la classe, je reçois
erreur C2065: 'AllReferrals': identificateur non déclaré
Voici mon code:
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);
}
Je ne suis pas votre compilateur. Pourquoi n'expliquez-vous pas ce que vous essayez de demander? –
Désolé, essayait juste de garder les choses intéressantes. –
@Nona: J'ai toujours le même conseil que je vous ai donné dans la dernière question sur ce même code (version précédente): Vous devez indiquer quelles sont vos intentions et ensuite les gens peuvent vous aider avec des commentaires sur comment atteindre votre objectif. –