begin process at 2012 02 12 22:02:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

surcharge de l'operateur = dans un classe tableau avec tempate, comment faire ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

surcharge de l'operateur = dans un classe tableau avec tempate, comment faire ?

lundi 26 janvier 2004 à 11:24:42 | surcharge de l'operateur = dans un classe tableau avec tempate, comment faire ?

tanguy_laverdure

Bonjour, je voudrais surcharger l'operateur = pour affecter mon tableau comme donnee membre d'une autre classe

j'ai une classe cToto dans laquelle je cree un tableau
CDISTableau2D<double> dMonTableau2D;
// je le dimensionne
dMonTableau2D(2,3)

//j'y met des valeurs
dMonTableau2D(0,0) = 1.0;
dMonTableau2D(1,0) = 2.0;
dMonTableau2D(1,2) = 3.0;

// Maintenant je voudrais affecte ce tableau comme donne
//membre d'une autre classe
// CDISTableau2D<double> dDonneeMembreTableau2D;
// dDonneeMembreTableau2D(2,3)

je pensai faire dDonneeMembreTableau2D = dMonTableau2D
mais ca ne marche pas

je ne vois pas trop comment creer une surcharge de = pour ma classe avec template. Quelqu'un aurait il une idee ???

template <class T>
class CDISTableau2D
{
public:
CDISTableau2D();
CDISTableau2D(int iiNbElemI, int iiNbElemJ);
~CDISTableau2D();

T& operator() (int iiNbElemI, int iiNbElemJ);
T operator() (int iiNbElemI, int iiNbElemJ) const;

void AffecteNbElem(int iiNbElemI, int iiNbElemJ);
void DonneNbElem(int& ioiNbElemI, int& ioiNbElemJ);

void Initialise();

private:

bool _bInitialise;
T* _pValeur;
int _iNbElemI;
int _iNbElemJ;
};

// Constructeurs
template <class T> CDISTableau2D<T>::CDISTableau2D()
{
_iNbElemI = 0;
_iNbElemJ = 0;
_pValeur = 0;
_bInitialise = false;
}

template <class T> CDISTableau2D<T>::CDISTableau2D(int iiNbElemI, int iiNbElemJ)
{
if (iiNbElemI <= 0 || iiNbElemJ <= 0)
{
//throw BadIndex("Matrix constructor has 0 size");
cout << "bad index" << endl;
}
else
{
_iNbElemI = iiNbElemI;
_iNbElemJ = iiNbElemJ;
_pValeur = 0;
_bInitialise = false;

// Initialisation du tableau
Initialise();
}
}

// Destructeur
template <class T> CDISTableau2D<T>::~CDISTableau2D()
{
delete[] _pValeur;
}

// Affecte une taille au tableau
template <class T> void CDISTableau2D<T>::AffecteNbElem(int iiNbElemI, int iiNbElemJ)
{
_iNbElemI = iiNbElemI;
_iNbElemJ = iiNbElemJ;

// Initialisation du tableau
Initialise();
}

// Donne le nombre de lignes et de colones
template <class T> void CDISTableau2D<T>::DonneNbElem(int& ioiNbElemI, int& ioiNbElemJ)
{
ioiNbElemI = _iNbElemI;
ioiNbElemJ = _iNbElemJ;
}

// Initialisation du tableau
template <class T> void CDISTableau2D<T>::Initialise()
{
_pValeur = (new T[_iNbElemI * _iNbElemJ]);

if (_pValeur != NULL && _bInitialise == false)
{
for (int i = 0; i < _iNbElemI; i++)
{
for (int j = 0; j < _iNbElemJ; j++)
{
_pValeur[_iNbElemJ*i + j]=0;
}
}
_bInitialise = true;
}
}

// surchage de l'oerateur ()
template <class T> T& CDISTableau2D<T>::operator() (int iiNbElemI, int iiNbElemJ)
{
if (iiNbElemI >= _iNbElemI || iiNbElemJ >= _iNbElemJ)
//throw BadIndex("Matrix subscript out of bounds");
cout << "bad index" << endl;

return _pValeur[_iNbElemJ*iiNbElemI + iiNbElemJ];
}

// surchage de l'operateur ()
template <class T> T CDISTableau2D<T>::operator() (int iiNbElemI, int iiNbElemJ) const
{
if (iiNbElemI >= _iNbElemI || iiNbElemJ >= _iNbElemJ)
//throw BadIndex("const Matrix subscript out of bounds");
cout << "bad index" << endl;

return _pValeur[_iNbElemJ*iiNbElemI + iiNbElemJ];
}



Cette discussion est classée dans : int, tableau, cdistableau2d, iinbelemi, iinbelemj


Répondre à ce message

Sujets en rapport avec ce message

je comprend plus rien(pointeur) [ par bidules ] Bonjour,Pour moi on utilise les pointeur pour creer des tableau dynamiquement.or j'ai reussi a en declarer un avec une taille entrer a l'aide d'une va tableau char [ par dingue007 ] Voila je dois faire un prog en C++ : un tableau avec les mois de lannée et quand je tape un chiffre il me sort le mois ! mais je narrive pas a faire l tableau dynamique de structure en C ? [ par axl79 ] salutje voudrai faire un tableau dynamique de structures. voici ma structure: struct struct_arete { int sommet1; int sommet2; int quantite;} arete;com pb de sauvegarde de donnees dans un tableau sous excel [ par nazca ] Le Zero de la programmationNazcaBonjour!j'aimerais savoir comment on fait pour sauvegarder des donnees sous excel dans un tableau.et surtout comment d C ANSI allocation dynamique de tableau [ par pedu ] Ce petit pro beug en sortie, pourquoi et que faire ?#include #include int (*pi)[1][1]; /* pointeur sur un tableau d'entiers */void main(void){ unsi Tableau de structure [ par tomsawyerbelgique ] Bonjour suriez-vous me dire comment fait-on pour passer un tableau de structure dans une fonction:struct student { char nom[10]; int nbcot les class tjs le class... [ par JediMaster ] bon ben chuis enfin arriver a faire un tableau dans une classe et chuis tres content mais j'ai un autre pb je veux faire un tableau d'objet que j'init pb classe [ par JediMaster ] j'ai créé un tableau dynamique dans une classe comme ca:class MaClasse{public: int m_largeur; int m_hauteur; int** m_tableau; MaClasse(int lar,int hau Gestion d'entrées/sorties sur fichier [ par macrow ] Bonjour, Voici mon source : #include #include #include #include #include //******************************************** creer une fonction retournant un tableau [ par billcala ] j'essaie de créer une fonction qui doit initialiser un tableau d'entiers : le code que je fais est :int mafonction()[8];using namespace std;int mafonc


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,808 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales