104Fermer106
FarewellLe 09/01/2010 à 11:41
Bon, voici l'exemple d'un tuto que je ne comprends pas très bien.
On a la définition d'une classe :
// pointer to classes example
#include <iostream>
using namespace std;
class CRectangle
{
  int width, height;

  public:

  void set_values (int, int);
  {
    width = a;
    height = b;
  }

  int area (void)
  {
    return (width * height);
  }
}

Il y a donc pas de constructeur, deux méthodes et deux attributs.

Voici maintenant la fonction main (la déclaration de la classe étant faite dans le même fichier) :
int main ()
{
  CRectangle a, *b, *c;
  CRectangle * d = new CRectangle[2];
  b = new CRectangle;
  c = &a;
  a.set_values (1,2);
  b->set_values (3,4);
  d->set_values (5,6);
  d[1].set_values (7,8);

  cout << "a area: " << a.area() << endl;
  cout << "*b area: " << b->area() << endl;
  cout << "*c area: " << c->area() << endl;
  cout << "d[0] area: " << d[0].area() << endl;
  cout << "d[1] area: " << d[1].area() << endl;

  delete[] d;
  delete b;
  return 0;
}


Ce que je ne comprends pas très bien, c'est le "CRectangle * d = new CRectangle[ 2 ];"
Ca veut dire qu'on crée un pointeur sur un tableau de deux obets CRectangle, c'est ça ?

Donc après, les d[ 0 ] et d[ 1 ] sont deux objets CRectangle qui n'ont pas de nom particulier, mais qu'on connait juste par le pointeur du tableau et leur index ? d[ 0 ] et d[ 1 ] sont donc des objets ?

Merci. smile