Klasse vererben

Hallo,
ich habe also eine Klasse Namens cFileName.
Die hat zwei Konstruktoren, jeweils mit Parametern, aber keinen ohne Parameter, also kein Konstruktor cFileName(void)
Klappt ja auch aber wenn ich jetzt versuche eine zweite Klasse cMpgFileName davon abzuleiten meckert der Compiler:
mpgplayer_player.c:81: error: no matching function for call to `cFileName::cFileName()’

???
Was interessiert mich cFileName::cFileName()?
Hab ich nicht. Brauch ich?
Müsste ich die Basisklasse anpassen? (Kann doch nicht sein,oder?)

Danke vom C++WenigAhnung Shelli

Hi Shelli,

poste doch mal die Deklaration der beiden Klassen.

Gruß
Uwe

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

poste doch mal die Deklaration der beiden Klassen.

Danke für das Angebot.
Aber ich habs aufgegeben meine Klasse ableiten zu wollen.
Weil die Methoden deren Verhalten ich modifizieren wollte private-Daten verwenden und an die komm ich per Ableitung eh nicht.
Zumindest wenn ich mein altes C+±Handbuch beim Überfliegen richtig interpretiert habe.
Ich werd einfach den Code der Basisklasse kopieren und dann modifizieren.

Shelli

poste doch mal die Deklaration der beiden Klassen.

Danke für das Angebot.
Aber ich habs aufgegeben meine Klasse ableiten zu wollen.
Weil die Methoden deren Verhalten ich modifizieren wollte
private-Daten verwenden und an die komm ich per Ableitung eh
nicht.
Zumindest wenn ich mein altes C+±Handbuch beim Überfliegen
richtig interpretiert habe.
Ich werd einfach den Code der Basisklasse kopieren und dann
modifizieren.

Hallo Shelli,

wenn du die Klasse von der Basisklasse public ableitest, stehen dir alle Eigenschaften (Membervariablen) und Methoden zur Verfügung, egal ob sie private sind…
Es ist also nicht nötig, die Klasse zu kopieren.

Zu deinem Konstruktor-Problem…
Wenn du eine Klasse ableitest, sollte diese auch den Konstruktor der Basisklasse füllen, d.h. die übergebenen Parameter müsstest du im Konstruktor der Unterklasse an den der Basisklasse übergeben z.B. so:
class BaseClass
{
private:
CString m_str;

public:
// constructor
BaseClass(const CString& str)
{
m_str = str;
};
};

class SubClass : public BaseClass
{
public:
// constructor
SubClass()
: BaseClass(„value“)
{
cout
Gruß Markus