Patron de classe dans c++

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

1 réponse

  1. Contributeur
    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