Bonsoir,
J'essaie de coder une classe AdvancedArray qui serait un genre de vecteur simplifié. Seulement j'obtiens cette erreur à la compilation. J'ai fait quelques recherches sur Internet, mais aucune des causes/solutions proposées n'a marché.
Je vous poste mon .h et .cpp :
Le .h :
Code C/C++ :
#ifndef GENETICCARD_H
#define GENETICCARD_H
#include "AdvancedArray.h"
class GeneticCard {
private :
AdvancedArray<int> geneticCode;
AdvancedArray<int> headColor;
bool gender;
public :
GeneticCard();
GeneticCard(const GeneticCard& fatherCard, const GeneticCard& motherCard);
GeneticCard(unsigned int nbSpeedBricks, unsigned int numSpeedBrick);
AdvancedArray<int> getGeneticCode() const;
AdvancedArray<int> getHeadColor() const;
};
#endif
Le .cpp :
Code C/C++ :
#include <iostream>
#include <cstdlib>
#include <ostream>
#include "AdvancedArray.h"
template <typename T>
AdvancedArray<T>::AdvancedArray() {
}
template <typename T>
AdvancedArray<T>::AdvancedArray(unsigned int aLength):length(aLength) {
this->data = (T*) malloc(length*sizeof(T));
for (int i=0; i<length; i++) {
data[i] = NULL;
}
}
template <typename T>
AdvancedArray<T>::~AdvancedArray() {
}
template <typename T>
unsigned int AdvancedArray<T>::getLength() const {
return length;
}
template <typename T>
void AdvancedArray<T>::operator=(AdvancedArray<T> aAdvancedArray) {
length = aAdvancedArray.getLength();
for (int i=0; i<aAdvancedArray.getLength(); i++) {
data[i] = aAdvancedArray[i];
}
}
template <typename T>
T& AdvancedArray<T>::operator[](unsigned int i) {
if(i >= length()) {
throw;
}
return data[i];
}
J'ai donc des undefined references sur toutes les méthodes de mon AdvancedArray. Et je ne comprends pas d'où ça pourrait venir.
Si vous avez des idées n'hésitez pas,
Merci d'avance,
Antrqx.