Comment inclure une auto-créé classe dans une autre auto-création de la classe fichier d'en-tête?

Dire que j'ai créé deux classes: les Pneus et la Voiture.

J'ai donc quatre fichiers: Tires.cpp, Pneus.h, Car.cpp, Voiture.h.

La Voiture constructeur de Pneus comme paramètre. Mais je ne suis pas sûr de la façon de modifier la Voiture.h à
inclure des Pneus.h.

Voici ce que j'ai fait jusqu'à présent (note: ils sont dans des fichiers séparés)

Pneus.h

#include <iostream>
using namespace std;

class Tires
{
private:
    int numTires;

public:
    Tires();
};

Tires.cpp

#include <iostream>
#include "Tires.h"
using namespace std;

Tires::Tires()
{
    numTires = 4;
}

Voiture.h

#include <iostream>
#include "Tires.h" 
using namespace std;

class Tires; //Tried taking out forward declaration but still didn't work

class Car
{
private:
    Tires tires;

public:
    Car(Tires);   //Edited. Thanks to Noah for pointing out.

};

Car.cpp

#include <iostream>
#include "Car.h"
#include "Tires.h"
using namespace std;

Car::Car(Tires _tires)
{
    tires = _tires;
}

Grâce

  • yup, qui a l'air bien. alors, quelle est votre question? (votre titre ne fait pas de sens pour moi)
  • En aparté, veuillez ne pas utiliser using namespace std; ou des déclarations similaires dans un fichier d'en-tête - vous obtenez toutes sortes de "intéressants" d'effets secondaires que lorsque vous faites affaire avec des symboles qui sont définies dans plusieurs espaces de noms.
  • Donc en gros, j'ai une classe de Voiture et les Pneus de la Classe. Constructeur de la classe Voiture prend une instance de Pneus de classe. Voici ce que j'ai fait (voir code ci-dessus) et il n'est pas compilé. Espérons que cela a du sens. Merci.
InformationsquelleAutor pandascope | 2010-12-21