Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

c++ "=" i overload etmek ve inheritance


Öne çıkan mesajlar

Mesaj tarihi:
arkadaslar imdat.

/////////////////
template
class babafoo
{
babafoo & operator=(const T rhs[]);
}

template
class veletfoo : public babafoo
{
}
////////////////////

////
int data[] = {1,2,3,4};
veletfoo = data;


veletfoo = data calismiyor. inherit edemiyor operator overloadu nedense.

oysa ki kutu parantezi, '[]' i overload ettigimde father classdan her turlu calisiyor child classlarda.

garip bir sekilde intellisense operator= i tanimiyor vc++ da,
ama veletfoo da operator= u overload ettigimde calisiyor, fakat inherit edilen bir suru classim var ve hepsi icin yazmak istemiyorum operator= i.

bi fikri olan varmi operator= 'un child classlarda calismamasini?

simdi yazarken aklima geldi polymorphism olabilir gibi geliyor hatanin nedeni, ama mantiksiz geliyor operator[] calistigi icin
Mesaj tarihi:
ibretlik paylasim:

template
class veletfoo : public babafoo
{
//IBRET BEGINS
using babafoo :: operator=;
}

yapinca inherit etti operatoru. nedendir bilmem bi assignment operatorunde boyle bir dallamalik cikti.

farkli cozumu olan var mi bu soruna?
Mesaj tarihi:
daha buyuk bir sorun

[] i overload ettirdigimizde

babafoo[0] T dondurtebiliyoruz


fakat babafoo[0] = deger dedigimizde

bu kodun calismasi icin babafoo nun adres dondurmesi lazim.

fakat bir operatoru birden fazla overload edemedim nasil olacak sdfs
Mesaj tarihi:
of silin topigi epic fail

T & operator[](int i)
{
return data[i];
};

data olarak vector kullaninca nasil deger set ettirebilecegim konusunda supheye dusmustum sdfds
Mesaj tarihi:
var bir tane geliyor ahha

olay su brackets overloadundan gorebilecegimiz gibi adress donduruyorum T typein.

diyelim

haydar[0], kendi icindeki vectorun 0 inci integerini donduruyor
no problemo

haydar[0]= 3 yaptigimda haydar[0] in gonderdigi adrese 3 degerini atiyor, sorun yok

fakaaat

diyelim ki ben haydar[0] in 3 almasini istemiyorum. bu array arkadas icinde sadece cift sayilar bulunsun.

ne yapabilirim? dfsdfsdf

care 1 olarak her turlu almasini fakat output yaparken gostermemesi olarak aklimda fakat adam gibi bir cozum ariyorum :D
×
×
  • Yeni Oluştur...