Hello,
Voila j'ai appris c++ sur le tas donc je suis assez naze, je l utilise en mixant c et java :p
j'ai découvert y a pas longtemps les références, j'aimerai pouvoir instancier un objet par référence sans avoir a créer des objects en dehors du constructeur pour les paramètres
voici deux classes simplifiées
voici ce que je dois faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 class Node { public : Node(std::string const &name, Vector3f &position) : _name(name), _position(position){} private: std::string _name; Vector3f _position; }; class Camera : public Node { public: Camera(std::string const & name, Vector3f position, Vector3f target) : Node(name,positon), _target(target) {} private: Vector3f _target; };
j'aimerai le faire en une ligne mais je ne trouve pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Vector3f u(0.0f,0.0f,1.0f); Vector3f v(0.0f,0.0f,0.0f); std::string s="camera"; Camera * cam= new Camera(s,u,v);
j'ai remarqué que si j'enlève dans l'implémentation du constructeur de camera
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Camera * cam = new Camera ("camera", Vector3f (0.0f,0.0f,1.0f),Vector3f (0.0f,0.0f,0.0f));
les & ça passe. J'aimerai aussi savoir la durée de validité des références
par exemple si je fais le code précédent dans une méthode d'une classe object
et que la classe camera est un attribut de la classe object est-ce que l'initialisation reste valide ?
ex:
et puis une petite dernière :p
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 class MonObject { public: MonObject(){ Vector3f u(0.0f,0.0f,1.0f); Vector3f v(0.0f,0.0f,0.0f); std::string s="camera"; Camera * cam= new Camera(s,u,v); } void dosomething(){ // est ce que cam est correctement instanciée } private: Camera * cam; };
J'ai une classe qui est un singleton
j'y accède comme ça, mais je ne pense pas que c'est la bonne façon
J'ai essayé en utilisant un pointeur mais je n'arrive pas a lui faire obtenir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Singleton s; s.getinstance(); s.dosometing();
l'instance du singleton
Y a aussi un truc bizarre avec ma classe singleton
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 // ne marche pas Singleton * s=NULL; s->getinstance(); ou s = Singleton::getinstance();
j'ai une classe qui en hérite
momManager : public singleton
quand je fais :
et si dans mon manager j'ai mis du code dans le destructeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 monManager.destroy() <- methode de singleton pour delet le pointeur d'instance
ex
ca crash l'appli
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ~MonManager(){ delete unpointer; }
donc je fais un truc dégueu du genre créer une méthode freeResources pour delete mes pointeurs avant d'appeler le destroy
Voila je suis sur que c'est des questions triviales, mais j'ai perdu pas mal de temps à chercher partout et tester des solutions qui ne marche pas donc je retourner prog en java en attendant avec impatience vos réponses.
Merci d'avance
Partager