C++: erreur: invalid use of qualifié de nom
Mise à jour: je pense que c'est fixe. Merci les gars!
J'obtiens une erreur, et je ne peux pas le comprendre.
J'ai ce code:
//A Structure with one variable and a constructor
struct Structure{
public:
int dataMember;
Structure(int param);
};
//Implemented constructor
Structure::Structure(int param){
dataMember = param;
}
//A class (which I don't plan to instantiate),
//that has a static object made from Structure inside of it
class unInstantiatedClass{
public:
static Structure structObject;
};
//main(), where I try to put the implementation of the Structure from my class,
//by calling its constructor
int main(){
//error on the line below
Structure unInstantiatedClass::structObject(5);
return 0;
}
Sur la ligne qui dit "Structure unInstantiatedClass::structObject(5);", j'obtiens une erreur qui se lit comme suit:
error: invalid use of qualified-name 'unInstantiatedClass::structObject'
J'ai googlé cette erreur et regarda à travers plusieurs posts sur le forum, mais tout le monde les problèmes semblent être différentes. J'ai aussi essayé de googler "static struct objet à l'intérieur de la classe" et d'autres phrases, mais je n'ai pas trouvé tout ce que je pense vraiment lié à mon problème.
Ce que je suis en train de faire ici, c'est:
Avoir une classe que je n'ai pas toujours instancier. et d'Avoir, à l'intérieur de cette classe, un objet statique, qui est une variable qui peut être réglé via le constructeur.
Toute aide est appréciée. Merci.
Vous devez vous connecter pour publier un commentaire.
La définition du membre statique ne peut pas être à l'intérieur d'une fonction:
Je pense que le problème est que
Structure unInstantiatedClass::structObject(5);
est dans le main. Le mettre à l'extérieur.
Vous pouvez utiliser ce code:
Mise à JOUR: déplacement de l'initialisation du membre statique de portée mondiale.
static