20/01/13 10:17
tekdu
come da titolo non riesco a capire perchè il compilatore continua a dirmi che non sto implementando il metodo di Master::shuffle.
inoltre per splitting() mi dice che sto facendo un overloading. HELP.
CLASSE VIRTUALE MASTER
MASTER.H
CLASSE CHE IMPLEMENTA MASTER
KMASTER.H
KMASTER.cpp
PS: ovviamente ho tolto diverso codice, ma il concetto rimane lo stesso.
inoltre per splitting() mi dice che sto facendo un overloading. HELP.
CLASSE VIRTUALE MASTER
MASTER.H
class Master { public: virtual int splitting()=0; virtual list<pair<void*,list<void*> > > shuffle(list<pair<void*,void*> > mapResult)=0; void collectMap(list<pair<void*,void*> > mapData){ pthread_mutex_lock(&lockMap); mapResult.merge(mapData); cout<<"Master: Data Received!"<<endl; nFile--; if(nFile==0){ cout<<"Master: shuffling data..."<<endl; this->shuffledData=shuffle(mapResult); cout<<"Master: data shuffled"<<endl; } pthread_mutex_unlock(&lockMap); } };
CLASSE CHE IMPLEMENTA MASTER
KMASTER.H
class KMaster : public Master { public: int splitting(); list<pair<void*,list<void*> > > shuffle(list<pair<void*,void*> > mapResult); KMaster(string path,int numP,int nK):Master(path,numP){ } };
KMASTER.cpp
int KMaster::splitting(){ return 0; } list<pair<void*,list<void*> > > KMaster::shuffle(list<pair<void*,void*> > mapResult){ list<pair<void*,list<void*> > > shuffled; list<pair<double,double> >::iterator itk = Klusters.begin(); for(unsigned int i=0;i<Klusters.size();i++) shuffled.push_back(make_pair(&(*(itk)),app[i])); return shuffled; }
PS: ovviamente ho tolto diverso codice, ma il concetto rimane lo stesso.
aaa