Gå til innhold

Opprette array av en klasse i en annen klasse..


Anbefalte innlegg

Si jeg har en klasse "klasse1" og en "klasse2".

Si nå jeg definerer "klasse1 *test" i klasse2.

class klasse1
{
//blablabla
}

class klasse2
{
private:
klasse1 *test;
}

I constructoren til klasse2 kan jeg da skrive før sscopet begynner

klasse2::klasse2(blablabla)
: test ( new klasse1(argumenter) )
{

}

 

Men si at jeg skal ha en array av klasse1 i klasse2.

Jeg definerer f.eks. "klasse1 *test[5]" i klasse2.

 

class klasse2
{
private:
klasse1 *test[5];
}

 

Hvordan skal jeg da kalle constructoren til denne?

Har prøvd ting som

: test ( new klasse1(argumenter) )
: test ( new *klasse1(argumenter) )
: test ( new klasse1[](argumenter) )

og liknende, men får det ikke til å funke...

 

Sorry at jeg ikke kommer med mer konkret kode en dette, men har prosjektet på en PC uten internett.

Lenke til kommentar
Videoannonse
Annonse

en initializer kan ikke brukes i sammenheng med `new' når det er snakk om arrayer, man må gjøre det "manuellt" i stedet:

Skjult tekst: (Marker innholdet i feltet for å se teksten):

#include <iostream>

using namespace std;


class Class1 {
public:
 Class1()
 {
   cout << "before" << endl;
 } // constructor

 Class1(char* argument)
 {
   cout << "do stuff" << endl;
 } // constructor
}; // Class1


class Class2 {
public:
 Class2()
 {
   for(unsigned int i = 0; i < n_elts; i++)
     test[i] = new Class1("blah");
 } // constructor
 
private:
 static const unsigned int n_elts = 5;
 Class1* test[n_elts];
}; // Class2


int main()
{
 Class2 obj2;
 return 0;
}

Endret av dayslepr
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...