Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

physX

Treue Seele

  • »physX« ist der Autor dieses Themas

Beiträge: 119

Wohnort: Dresden

  • Private Nachricht senden

1

17.06.2009, 22:34

const string und vererbung

Hallo, ich habe eine Klasse CSimpleButton mit einer Membervariablen vom typ const std::string m_sButtonID. Sieht wie folgt aus:


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class CSimpleButton
{
public:
  CSimpleButton();
  .// ...andere Memberfunktionen

protected:
  const std::string m_sButtonID;
};

CSimpleButton::CSimpleButton(const std::string &sButtonID):
m_sButtonID (sButtonID)
{
// ....

}



Mein Problem entsteht nun bei der Vererbung; Ich habe eine weitere Klasse CSwitchButton, die von CSimpleButton erben soll, insbesondere ja auch die m_sButtonID;

Wenn ich aber wie oben in der CSwitchButton den Konstruktor wie folgt definiere:

C-/C++-Quelltext

1
2
3
4
CSwitchButton::CSwitchButton(const std::string &sButtonID):
m_sButtonID (sButtonID)
{ //....

}

meckert der compiler, dass m_sButtonID kein Member von CSwitchButton sei und auch nicht vererbt wurde. Mit anderen Membervariablen funktioniert es einwandfrei.

da der string const sein soll kann ich das auch nicht anders im Konstruktor übergeben. Gibt es hierfuer eine gute Lösung???
Gruss

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

17.06.2009, 22:37

Du musst den Konstruktor von CSimpleButton aufrufen:

C-/C++-Quelltext

1
2
3
4
5
CSwitchButton::CSwitchButton(const std::string &sButtonID)
    : CSimpleButton(sButtonID)
{
    //....

} 

physX

Treue Seele

  • »physX« ist der Autor dieses Themas

Beiträge: 119

Wohnort: Dresden

  • Private Nachricht senden

3

17.06.2009, 22:38

das war ja fix; :)
super vielen dank. es funktioniert jetzt richtig.
wusste nicht dass man an der Stelle auch einfach den parent-konstruktor aufrufen kann.
Gruss

Werbeanzeige