Hello
J’essaye de me bricoler, du moins pour le début quelque chose de fonctionnelle hum .
en bref :
le but est que l’utilisateur puisse dans le main avoir une méthode simple
maclasse objtableau;
objtableau(0,1,"string"); //tableau a plusieur dimention 0 = tableaux contenant d'autre tableaux, 1 index du tableaux, valeur
j’ai donc fait une classe template (le terme est juste?)
fichier cTableaux.tpp
#ifndef DEF_TEMPLATE_TABLEAU
#define DEF_TEMPLATE_TABLEAU
#include <iostream>
#include <vector>
template <typename T1> class Tableaux
{
public:
//Paire();
void affiche(T1 v);
void setData(T1 v,T1 v2,std::string Dt);
//{ std::cout << "Dépassement d'indice sur un tableau : " << "\n"; }
private :
std::vector<T1> NV1;//ok
std::vector < std::vector < T1 > > NV2;
};
template <class T1>
void Tableaux<T1>::affiche (T1 v)
{
std::cout << "Info: " << v << "\n";
}
template <class T1>
void Tableaux<T1>::setData (T1 v,T1 v2,std::string Dt)
{
NV2.push_back(NV1);
NV2.push_back(NV1);
NV2[v].push_back("dt"); //problème v ne doit pas être de type std::string, mai dt si , comment faire ??
std::cout << "Info: " << v << Dt << "\n";
}
#endif
main
#include <iostream>
//#include "cTableaux.hpp"
#include "cTableaux.tpp"
using namespace std;
//typedef Pile<int> PileInt;
int main()
{
int V=1;
int V2=1;
std::string Str="me";
Tableaux<std::string> B;
B.affiche(Str);
B.setData(Str,Str,Str);// évidament sa coince
return 0;
}
évidement avec les int sa passe sans problème (mettre en commentaire la ligne NV2[v].push_back(“dt”)
int V=1;
int V2=1;
std::string Str="me";
Tableaux<int> B;
B.affiche(V);
B.setData(V,V2,Str);
Je débute avec les templates donc un petit exemple avec la syntax est un plus
Merci d’avance