Seite 1 von 1

Klassen Konstruktoren

Verfasst: Fr Okt 07, 2011 12:19 pm
von MoonGuy
Mal eine kleine Frage:
Ich habe mir von VC eine Vorlage zum Erstellen einer DLL Klassenbibliothek erstellen lassen, da die Hilfen im MSDN bezüglich Klassenbibliotheken (erstellen) sehr unhilfreich finde. VC erstellte mir folgendes Konstrukt:

Code: Alles auswählen

namespace Projektname {
  public ref class Class1 {
  };
}
So weit, so gut. Ich habe nun in Class1 sowohl Konstruktor als auch Destruktor eingetragen und auch in die *.cpp Datei beide vermerkt und den Header included. Nun erhalte ich folgende Compilermeldungen:
1>Class1.cpp(7): error C2059: Syntaxfehler: ')'
1>Class1.cpp(7): error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>Class1.cpp(7): error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil?
1>Class1.cpp(14): error C2588: "::~Class1": unzulässiger globaler Destruktor.
Muss ich daraus schließen, dass Klassen aus Klassenbibliotheken keinen Konstruktor/Destruktor haben können. Oder habe ich irgendwas bezüglich Namespaces vergessen?

Re: Klassen Konstruktoren

Verfasst: Fr Okt 07, 2011 12:28 pm
von Xin
Um welche Sprache geht's hier eigentlich?

Sicher, dass Du C++.NET meinst?
Ansonsten kann ich mir "public ref class" nämlich nicht erklären.

Ansonsten hast Du Code eingefügt, so dass Du in Zeile 7 und 14 Fehler erhältst, während Du Zeile 1-4 im Zustand vor den Änderungen hier postest.

Du kannst daraus schließen, dass hier keiner auch nur den Hauch einer Idee haben könnte, was hier abgeht.
Der Blick in die Kristallkugel sagt mir allerdings, dass Du die Signatur des Konstruktors versaut hast. Just an educated guess.

Re: Klassen Konstruktoren

Verfasst: Fr Okt 07, 2011 12:33 pm
von MoonGuy
Xin hat geschrieben:Um welche Sprache geht's hier eigentlich?

Sicher, dass Du C++.NET meinst?
Ansonsten kann ich mir "public ref class" nämlich nicht erklären.

Ansonsten hast Du Code eingefügt, so dass Du in Zeile 7 und 14 Fehler erhältst, während Du Zeile 1-4 im Zustand vor den Änderungen hier postest.

Du kannst daraus schließen, dass hier keiner auch nur den Hauch einer Idee haben könnte, was hier abgeht.
Der Blick in die Kristallkugel sagt mir allerdings, dass Du die Signatur des Konstruktors versaut hast. Just an educated guess.
Ist "Signatur eines Konstruktors" ein Fachbegriff, den ich kennen muss?

Wollte gerade meinen Code posten, da fiel mir beim abtippen der Fehler auf: "using namespace Projektname;" in Class1.cpp vergessen. Deshalb konnte er gar nicht bis zur Klasse vordringen.

€dit: Ach und ja, ist C++ .NET

Re: Klassen Konstruktoren

Verfasst: Fr Okt 07, 2011 12:46 pm
von Xin
MoonGuy hat geschrieben:Ist "Signatur eines Konstruktors" ein Fachbegriff, den ich kennen muss?
Sagen wir mal so, es vereinfacht die Kommunikation ;-)

-> Funktionen deklarieren
MoonGuy hat geschrieben: Wollte gerade meinen Code posten, da fiel mir beim abtippen der Fehler auf: "using namespace Projektname;" in Class1.cpp vergessen. Deshalb konnte er gar nicht bis zur Klasse vordringen^^
Der Namespace ist Teil des Identifiers (des Namens, der eine Funktion identifiziert).
Du hast die Signatur verhauen. ^^