On Saturday 18 November 2000 00:21, Reinhard Foerster wrote:
On Fri, Nov 17, 2000 at 05:52:24PM +0100, Josef Spillner wrote:
Da muß ich jetzt doch noch mal nachfragen, und damit die Unordnung hier erweitern :-) Eine shared lib kann doch mehr als ein shared object enthalten, oder? Ist
Wenn wir mal bei C-Libs bleiben mehrere Funktionen, ja. Das kannst du dir mit nm anschauen. Die Bezeichnung "shared objcect" habe wir in der Diskussion bisher fuer per dl*() importierte Dinge genommen. Aber du hast recht - das ist sehr unsauber, da dabei nichts "shared" sein muss.
Aber klar, weil dl*() dafuer sorgt, dass es sich "shared" verhaelt, also der zwete Prozess, der es laedt benutzt den selben physikalischen Speicher, wie der erste.
zwar unüblich, zwei Klassen in einer Datei, aber machbar. Oder verwechsle ich hier Objektdefinitionen?
OO und shlibs sind noch ein ganz eigenes Kapitel... das ist etwas komplizierter, als C-Funktionen (wegen des Name-Manglings; Loesung siehe unten).
Es waren kein Objekte im Sinne von OO-Programmiersprachen gemeint. Häuser, Bäume, Funktionen usw. sind je nach Betrachtungsweise auch Objekte. Und um Funktioen ging es.
Zu den unbekannten Namen: Das läßt sich ganz praktikabel mit Factories
Nie gehört - das scheint ein Programmiersprachenspezifischer Slang zu sein.
Ist Windows-Slang: eine Factory ist eine Funktion/Methode, die komplett initialisierte Instanzen einer Klasse zurueckgibt.
Im Falle von Klassen in shared libs wuerde man dann noch so eine Funktion definieren:
extern "C" MyClass* factory(){return new MyClass;}
Konrad