Je suis un cours de C++ en ce moment, et ils font un bon travail en expliquant tout de manière détaillée. J’ai appris à programmer entièrement en Python, donc j’ai l’habitude de déclarer les choses directement et d’importer la classe si nécessaire.
En tout cas, j’ai des problèmes parce que dans le cours on dit qu’on n’a jamais besoin d’utiliser this->
mais quand j’essaie de définir une classe explicitement dans le même fichier .cpp, je ne peux faire fonctionner le constructeur que si j’utilise this->
. Est-ce que quelqu’un peut m’expliquer ou me donner un lien vers une discussion qui explique cela ? Je n’ai pas réussi à trouver une référence qui explique ce problème au niveau de la définition de tous les éléments dans le même fichier.
class Person {
public:
string nom;
int age;
Person (string nom, int age) {
nom = nom;
age = age;
}
};
int main () {
Person new_person("Alex", 22);
}
Cela fait que toutes les valeurs que je passe dans la fonction main ne sont pas initialisées. Cependant, si j’ajoute this-> à chaque ligne du constructeur, cela fonctionne correctement. Les exemples que je trouve n’utilisent pas this->
donc je ne comprends pas pourquoi c’est nécessaire ici. Peut-être que cela a à voir avec les espaces de noms qui sont encore un peu confus pour moi (tout le truc using namespace std mais j’ai pensé que puisque tout est dans le même fichier .cpp, cela devrait fonctionner.