[C++] appeller une fonction
Bonjour,
je suis un novice ds le C++ objet et j'ai qq soucis avec un code de calcul qui fait de la mecanique des fluides;
voila mon pb: ds le fichier NavierStokesSolverPC.hpp je veux afficher la coordonnee Z de chaque noeuds, ces coordonnees sont introduites ds quadrature.hpp et donc j'ai introduit une ligne (line 271) ds NavierStokesSolverPC.hpp:
std::cout << " coord = " << this->pt._coor[ 0 ] << "," << this->pt._coor[ 1 ] << "," << this->pt._coor[ 2 ] << std::endl;
mais ca ne marche pas, et je ne sais pas du tt pourquoi ca ne marche pas?
je sais que c les variables déclarées ds Publics qui sont accessebless par tte la hierarchie mais je me perds ds tt cas
merci bcp bcp pr votre aide
NavierStokesSolverPC.hpp : https://www.cjoint.com/?ktoUOztHqp
quadrature.hpp : https://www.cjoint.com/?ktoWej5CLR
quadrature.cpp : https://www.cjoint.com/?ktoWCqSoTH
merci a vous
je suis un novice ds le C++ objet et j'ai qq soucis avec un code de calcul qui fait de la mecanique des fluides;
voila mon pb: ds le fichier NavierStokesSolverPC.hpp je veux afficher la coordonnee Z de chaque noeuds, ces coordonnees sont introduites ds quadrature.hpp et donc j'ai introduit une ligne (line 271) ds NavierStokesSolverPC.hpp:
std::cout << " coord = " << this->pt._coor[ 0 ] << "," << this->pt._coor[ 1 ] << "," << this->pt._coor[ 2 ] << std::endl;
mais ca ne marche pas, et je ne sais pas du tt pourquoi ca ne marche pas?
je sais que c les variables déclarées ds Publics qui sont accessebless par tte la hierarchie mais je me perds ds tt cas
merci bcp bcp pr votre aide
NavierStokesSolverPC.hpp : https://www.cjoint.com/?ktoUOztHqp
quadrature.hpp : https://www.cjoint.com/?ktoWej5CLR
quadrature.cpp : https://www.cjoint.com/?ktoWCqSoTH
merci a vous
A voir également:
- [C++] appeller une fonction
- Fonction si et - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Appeller en inconnu - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
1 réponse
Rappels de C++
this n'a de sens qu'à l'intérieur d'une structure :
ou d'une méthode rattachée à une classe :
D'ailleurs *this peut être sous-entendu dans chacun de ces cas :
Le problème dans ton code
Là, this fait référence à la classe NavierStockes qui n'a pas d'attribut _coor, tu ne peux utiliser ce champ que sur une instance de classe QuadPoint.
Exemple
En l'occurence this->pt ne fait pas référence dans la classe NavierStockes à un attribut pt de type QuadPoint.
Bonne chance
this n'a de sens qu'à l'intérieur d'une structure :
struct plop{ //... }ou d'une classe
class plop{ //... ;}
ou d'une méthode rattachée à une classe :
void plop::f(){ //... }
D'ailleurs *this peut être sous-entendu dans chacun de ces cas :
class a{ protected: int x; // un attribut de a public: //le constructeur de a a(int x0=0):x(x0); //un accesseur sur l'attribut x::a void set_x(int x0){ this->x = x0; x = x0; //equivalent à la ligne précédente } };
Le problème dans ton code
Là, this fait référence à la classe NavierStockes qui n'a pas d'attribut _coor, tu ne peux utiliser ce champ que sur une instance de classe QuadPoint.
Exemple
QuadPoint q; qstd::cout << q._coor[0] << std::endl;
En l'occurence this->pt ne fait pas référence dans la classe NavierStockes à un attribut pt de type QuadPoint.
Bonne chance