Avatar billede tax Nybegynder
10. januar 2002 - 14:07 Der er 6 kommentarer og
3 løsninger

Nedarvning

Når jeg nedarver en klasse i en childklasse og jeg gerne vil anvende moderklassens constructor til at initalisere fællesparametrene hvordan er syntaxen

class mother

.....


class child : mother
{
  child()
  {
      mother::mother()
      [init child\'s unikke variable her]
  }
}


Avatar billede chries Nybegynder
10. januar 2002 - 14:13 #1
jeg er ikke helt med, men:

du skal ikke kalde mother::mother(). sker automatisk.

lader lige være med at bruge public/private:

class mother
{
  mother() { // constructor }

protected: // eller via set function
  int b;
};

class child : public mother
{
  child()
  {
    a = 1;
    b = 0;
  }

  int a;
}




Avatar billede soepro Nybegynder
10. januar 2002 - 14:21 #2
Du skal bruge såkaldte initialiser lister:

class mother
{
  private:
  int a;
  public:
  mother(int nv) { a = nv; };
}

class child : public mother
{
  private:
  int b;
  int c;
  public child(int nmv, int ncv) : mother(nmv)
  {
    b = nmv;
    c = ncv;
  };
}

Den lille krølle på constructore til child (: mother(nmv)) er en initialiser liste som \"overfører\" nmv (new-mother-value) til constructoren på mother-klassen.
Avatar billede wisen Nybegynder
10. januar 2002 - 14:47 #3
Mener du noget i stil med :


class Mother
{
private :
  int m_Nummer;
//.....

public :
  Mother(int Nummer);
//.....

};

class Child : public Mother
{
// ......

public:
  Child(int Nummer);

//.....
};

Child::Child(int Nummer) : Mother(Nummer);


/Wisen
Avatar billede wisen Nybegynder
10. januar 2002 - 14:48 #4
Soepro >> Hmm, dit svar var der ikke lige før, men der står at du svarede 14:21 ?!?
Avatar billede wisen Nybegynder
10. januar 2002 - 14:49 #5
... ellers godt at se, at vi er nogenlunde enige :)
Avatar billede soepro Nybegynder
10. januar 2002 - 15:30 #6
Wisen >> Tja, det oplever jeg også fra tid til anden. (Vi er for hurtige til at eksperten kan følge med !)
Avatar billede wisen Nybegynder
10. januar 2002 - 15:51 #7
hehe :)
Avatar billede tax Nybegynder
10. januar 2002 - 17:19 #8
Jeg fandt frem til at det var en nedarvningsinitalisering der var galt-

class child(int a)
  :mother(a)
{
}

-klarede problemet
Avatar billede wisen Nybegynder
11. januar 2002 - 08:27 #9
Takker for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester