Objekter med argumenter og utvalg

stemmer
4

Er det en måte i C ++ hvor et dokument har argument lagt på den, med en matrise, slik som:

int x = 1;
int y = 2;

Object myObject( x, y )[5]; // does not work

Jeg håpet at jeg kunne sette argumenter inn i objektet, mens du oppretter en rekke fem av disse stedene, er det noen som vet hvordan? og er det en bteter måte?

Publisert på 22/04/2009 klokken 23:25
kilden bruker
På andre språk...                            


4 svar

stemmer
7

Ved bygging av en rekke objekter i C ++ bare standardkonstruktøren kan brukes med mindre du bruker den eksplisitte Array initialisering syntaks:

Object myObject[5] = { Object( x, y ),
                       Object( x, y ),
                       Object( x, y ), 
                       Object( x, y ), 
                       Object( x, y ) }

Her er noen god informasjon fra C ++ FAQ om dette:

http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.5

Svarte 22/04/2009 kl. 23:26
kilden bruker

stemmer
0

Du har ikke nevnt hvilket språk ennå, men i C # 3.0 kan du komme tett med samling initializers:

var myObject = new List<Object>() {
    new Object(x,y),
    new Object(x,y),
    new Object(x,y),
    new Object(x,y),
    new Object(x,y)
};
Svarte 22/04/2009 kl. 23:31
kilden bruker

stemmer
0

Eller noe sånt som dette:

int x = 1;
int y = 2;
int numObjects = 5;

Object myObjectArray[numObjects];

for (int i=0, i<numObjects, i++) {
    myObjectArray[i] = new myObject(x,y);
}

Kanskje det er en funksjon med x, y og numObjects som params?

Svarte 22/04/2009 kl. 23:46
kilden bruker

stemmer
1

Hvis du ikke har noe imot å bruke en vektor i stedet for en matrise:

std::vector<Object> obj_vec(5, Object(x, y));

Eller hvis du virkelig ønsker en matrise og har ikke noe imot å initialisere den i 2 trinn:

Object obj_array[5];
std::fill_n(obj_array, 5, Object(x, y));
Svarte 23/04/2009 kl. 03:07
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more