🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.c++
1 messages
1 total messages Started by Andre Pareis Fri, 18 Dec 1992 13:31
Referenzen in Basisklassen initialisieren?
#86
Author: Andre Pareis
Date: Fri, 18 Dec 1992 13:31
82 lines
2416 bytes

Ich habe in einer Library ungefaehr so etwas geschrieben:


class Window
{
protected:
	Window( View& workArea );


private:
	View& root;
};


im .cc file:

Window::Window( View& workArea ): root(workArea)
{
}


Dann gibt es noch abgeleitete Klassen, die alle virtual public
zu Window sind:

class WinWithMover: virtual public Window
{
protected:
	WinWithMover();		// hier ex. kein cons. mit einem View&

};


class WinWithName:  virtual public Window
{
protected:
	WinWithName( const char * );

};


===========================================

Das eigentliche darzustellende Fenster erbt dann von
meheren dieser abgeleteten Windows:

class MyWindow: public WinWithMover, public WinWithName
{
public:
	MyWindow( View& workArea, const char *name ):
		Window(workArea), WinWithName(name) {}

};


Das Problem ist, wenn ich nur die Klassen WinWith* compiliere,
erhalte ich die Fehlermeldung, dass die Klasse Window keinen
Defaultinitialisierer hat. Also schreibe ich einen:

protected: Window::Window();

diesen erklaere ich dann in den beiden direkt abgeleiteten Klassen
als private. Compiliere ich jetzt die Klasse Window, erhalte ich
die Warnung, dass root durch den Defaultkonstruktor nicht initiali-
siert wird. Ich weiss aber genau, dass dieser Window::Window()
Konstruktor nie benutzt wird, der er in jeder abgeleiteten Klasse
private wird.

Also: Wie kann ich das eben beschriebene Verhalten umgehen?
	( Ich moechte wenn es geht KEINE Pointer benutzen )

Danke,

-- 
			+-----------------------------------------------+
			| Andr'e Pareis |  Techn. University of Berlin	|
			|-----------------------------------------------|
			| e-mail:    pareis@cs.tu-berlin.de		|
			|	     subiaagb@w350zrz.zrz.tu-berlin.de	|
			| NeXT-mail: subiaagb@w271zrz.zrz.tu-berlin.de  |
			+-----------------------------------------------+
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads