🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #1765

Private Datenstrukturen

#1765
From: Wolfgang Thomas
Date: Tue, 05 Mar 1996 18:34
75 lines
2366 bytes
Hallo,

ich bin bei meinem Einstieg in die C++ auf ein paar Probleme gestossen,
die mir ziemlich unklar sind. Vielleicht kann mir ja der oder die Eine
weiterhelfen:

1.) Wenn Klassen zur internen Verarbeitung Strukturen benutzen, dann
    sollten diese ja den anderen Klassen nicht bekannt gemacht werden.
    Also habe ich diese Definitionen in den Private-Teil der Klassen-
    deklaration gesteckt:

    class test
    {
    private:

       struct A
       {
          int a;
          int b;
       };

       struct B
       {
          struct A a;
          int      c;
       };
       ...
    };

    Dies fuehrt jedoch zu der Fehlermeldung: "access to private member
    test::A is not allowed".
    Warum ist das verschachtelte Definieren von Datenstrukture nicht
    erlaubt?


2.) Beim probieren mit Template-Klassen bin ich auf folgende Fehlermeldung
    gestossen:

    template <class A>
    class test
    {
    public:
       int test (void);
    };

    template <class A>
    int test::test (void)
    {
       return 1;
    }

    Der Compiler liefert mir "template argument "A" is not used in
    function argument list".
    Ich habe nirgendwo eine Restriktion gefunden, die verlangt, dass
    jede member-function einer template-class alle template argumente
    benutzen MUSS. Habe ich dies uebersehen, oder ist dies wohl "nur"
    eine Einschraenkung des Compilers?

3.) Dann habe ich noch ein Problem beim Exportieren von Klassen
    bzw. Memberfunktions in DLLs. Hierbei muss ich dem Linker explizit
    die Namen der Funktionen angeben, die exportiert werden sollen. Fuer
    "normale" Funtionen ist das kein Problem, man muss an den Namen
    lediglich einen underscore dranhaengen, aber wie ist es mit member-
    functions? Ist das irgendwo festgelegt, oder compilerabhaengig?
    (Weisst jemand wie das beim Watcom 10.0A definiert ist?)

Danke im voraus.

Tschuess
Wolfgang



_________________________________________________________
Wolfgang Thomas                         D-90419 Nuernberg
Technical Details
Message-ID: <64JgNVyTpZB@nana.franken.de>
Path: arc1-ca.pugleaf.net!nana.franken.de!wolfgang

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!nana.franken.de!wolfgang
Date: 05 Mar 1996 20:34:00 +0200
From: wolfgang@nana.franken.de (Wolfgang Thomas)
Newsgroups: de.comp.lang.c++
Message-ID: <64JgNVyTpZB@nana.franken.de>
Subject: Private Datenstrukturen
X-Newsreader: CrossPoint v3.1 R/B12245