vererbung probleme

Alles rund um die Programmierung mit Qt
Antworten
Over
Beiträge: 11
Registriert: 18. Mai 2008 16:39
Kontaktdaten:

vererbung probleme

Beitrag von Over »

tag leute, ich hab folgendes problem.
ich hab eine klasse A welche (für connect usw.) von QWidget erbt, und eine klasse B welche von klasse A UND QMainWindow erben soll (weils halt QMainWindow elemente benötigt).
also:

Code: Alles auswählen

class A : public QWidget
{
      Q_OBJECT
	protected:
		void methoden();
       usw.
};
class B : public A, public QMainWindow
{
      Q_OBJECT
	public:
		B(QMainWindow *parent = 0, Qt::WindowFlags flags = 0);
       usw.
};
so, problem an der sache ist dass ich dann ne menge errors bekomm wie zb:

Code: Alles auswählen

.\MyWin.cpp(35) : error C2385: ambiguous access of 'connect'
        could be the 'connect' in base 'QObject'
        or could be the 'connect' in base 'QObject'
hab auch schon versucht klasse A direkt von QMainWindow erben zu lassen, und B nurnoch von A, jedoch bekomm ich dann auch n error:

Code: Alles auswählen

 .\MyWin.cpp(25) : error C2614: 'B' : illegal member initialization: 'QMainWindow' is not a base or member 
was mach ich falsch? ._.
hoffe ihr könnt mir helfen
thx, over
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Du leitest zweimal von QWidget ab - wie soll das je funktionieren und was soll das überhaupt werrden?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Genauer gesagt leitet er 2x mal von QObject ab und das wird bemängelt, da es nicht erlaubt ist...
Over
Beiträge: 11
Registriert: 18. Mai 2008 16:39
Kontaktdaten:

Beitrag von Over »

ja ._.
ich will halt mehr struktur rein bringen.
anstellle einer riesigen klasse eine klasse welche sich nur um die toolbar kümmert, eine die sich nur um MDI kümmert usw.und die main klasse soll dann halt davon erben.
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Naja Baukastenprinzip und Vererbung beisst sich halt ...

Baukasten = wiederverwendung
Vererbung = Polymorphie also vielgestaltigkeit.

und eine der Grundregeln fuer gutes Design lautet halt, vererbe nie nur um wiederzuverwenden.

Fuer "baukaesten" sollt man eher aggregation verwenden, nur muss man dann alle funktionen "durchschleifen". was auf der einen seite zwar laestig ist, auf der anderen seite aber spaeter viel viel aerger (und damit Arbeit) erpsaren kann ....

Ciao ...
Antworten