Guten Abend miteinander,
ich bin versuche mich im Moment im Umstieg von VB.Net auf C++. Allerdings habe ich mich für die Variante C++/CLI von Microsoft entschieden, um weiter nette Vorteile wie zum Beispiel Reflection nutzen zu können.
Vom Grundsatz erinnere ich mich, dass in VB.Net alle Datentypen aus Object erbten und daher auch für Reflection zugängig waren. Ich habe mir zuerst folgende Klasse zum experimentieren geschrieben
Nun habe ich versucht den Type von Person zu erhalten. Dazu
Mit dem Problem, dass BspZeiger nicht in Object konvertiert werden kann. (Macht ja auch Sinn wie soll der Compiler wissen wie meine Klasse ein Object wird)
Dann dachte ich meine Klasse müsste Object erben, damit Person ein Object wird. Also habe ich die Klasse geändert:
Aber dann wird reklamiert, dass Person nicht aus einer Standardklasse erben darf.
ich bin versuche mich im Moment im Umstieg von VB.Net auf C++. Allerdings habe ich mich für die Variante C++/CLI von Microsoft entschieden, um weiter nette Vorteile wie zum Beispiel Reflection nutzen zu können.
Vom Grundsatz erinnere ich mich, dass in VB.Net alle Datentypen aus Object erbten und daher auch für Reflection zugängig waren. Ich habe mir zuerst folgende Klasse zum experimentieren geschrieben
Code:
class Person
{
char* Nachname;
int Alter;
public:
Person(char* P_Nachname, int P_Alter) {
Nachname = P_Nachname;
Alter = P_Alter;
}
};
Nun habe ich versucht den Type von Person zu erhalten. Dazu
Code:
char* Name = "Broich";
int Alter = 31;
int main()
{
Person Beispiel(Name, Alter);
Person* BspZeiger = &Beispiel;
System::Object^ Objekt = BspZeiger;
System::Type^ Datentyp = Objekt->GetType();
return 0;
}
Mit dem Problem, dass BspZeiger nicht in Object konvertiert werden kann. (Macht ja auch Sinn wie soll der Compiler wissen wie meine Klasse ein Object wird)
Dann dachte ich meine Klasse müsste Object erben, damit Person ein Object wird. Also habe ich die Klasse geändert:
Code:
class Person : System::Object
Aber dann wird reklamiert, dass Person nicht aus einer Standardklasse erben darf.