Patron de classe dans c++

houcem001 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
salut
j'ai un patron de classe nommé CVector
//CVector.h:
template<Class T>
class CVector{
....
};
et j'ai une classe nommé Matrice dont j'ai:
//Matrice.h
class Matrice{
public:
...
void add(CVector<T>);
CVector<T> getcont(int);
...
private:
CVector<T> m_cont[100]; comme attribut
...
};

Mais au niveau du compilation il y a des erreurs:
C:\Documents and Settings\fourati\Bureau\houcem\COURS\TP CPOO\TP2\Matrice.h|13|error: `T' was not declared in this scope|
C:\Documents and Settings\fourati\Bureau\houcem\COURS\TP CPOO\TP2\Matrice.h|13|error: template argument 1 is invalid|
.......

Merci de m'aider
A voir également:

1 réponse

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Logique.
tu ne met pas de template devant matrice, donc tu peux le déclarer ainsi:
Matrice a;
Mais comment le compilateur sait comment remplacer les T qui sont contenus dans Matrice ?
deux solutions
1- tu met un template <typename T> devant la déclaration de Matrice, et ensuite tu déclare "Matrice<double> a;"
2- tu met le type de CVector souhaité dans la classe Matrice et tu conserve la déclaration.
0