jesus_christ votre nouveau dieu | Code :
- class myClass
- {
- private:
- vecor<double> toto_;
-
- public:
- myClass(int val = 10) : toto_(val, 0.0) { }
- const double* get_toto() {return &(toto_[0]);} // un peu crade mais conforme ISO98
- void set_toto(const vector<double>& tata) {toto_ = tata;}
- };
- int main(void)
- {
- const double* titi;
- double tata[10] = {11,22,33,44,55,66,77,88,99,1010};
- vector<double> vecTata(tata, tata + 10); // tata en vecteur
- myClass *objet=new myClass(); // le new ne sert à rien, la pile ça existe, on est pas en java
-
- titi=objet->get_toto();
- std::cerr<< titi[3] << std::endl;
- objet->set_toto(vecTata);
- titi=objet->get_toto();
- std::cerr<< titi[3] << std::endl;
- return 0; // inutile
- }
|
remarques :
- en C++ on a pas de garbage collector, mais on a la pile et la STL. Il faut utiliser un maximum la STL et faire le moins de new possible. Sans utilisation du polymorphisme, on peut faire du code sans aucun new, donc normalement sans fuite. Les new ne sont pas exception-safe. Ici dans ce code que je n'ai pas entièrement corrigé, il y a un new sans son delete. Sylvaing t'as fait trop de java
- il n'y a pas de point-virgule après une définition de méthode { code; }; <-- non ! { code } <-- oui
- return 0; à la fin du main ne sert à rien.
- ne pas oublier les const, éviter les pointeurs
|