emeriks
Goto Top

Frage zu bestimmten Zeichen in C++ Codezeile

Hi,
bin C++ Laie (keine Ahnung) und versuche C++ Quellcodes zu lesen und zu verstehen. Bin sonst in VB.Net zuhause.

Was bedeutet das "^" bei der Deklaration und Übergabe von Variablen?

Beispiele:
1
2
3
4
5
6
7
8
9
10
property String ^ ServerName {
  String^ get() {
  return serverName;
};

ItemInfo^ AddItem(ItemInfo^ MyItem);

List<ItemInfo^>^ GetItems();

ItemInfo^ CreateItem(String ^ItemName, ItemInfo^ NewItem);

Was mich irritiert, dass es mal nach, mal vor einem Bezeichner vorkommt. Und mal mit Leerzeichen davor und dahinter.

E.

Content-ID: 290876

Url: https://administrator.de/forum/frage-zu-bestimmten-zeichen-in-c-codezeile-290876.html

Ausgedruckt am: 17.04.2025 um 02:04 Uhr

114757
Lösung 114757 14.12.2015 aktualisiert um 14:14:05 Uhr
Goto Top
Moin,
das ^ (caret) ist das "managed Äquivalent" zu einem Pointer in C. Einen Stern für unmanaged Pointer kann man trotzdem noch verwenden, der ist dann halt nicht "managed".

Gruß jodel32
emeriks
emeriks 14.12.2015 um 13:43:25 Uhr
Goto Top
Hi Jodel,
Danke, ich denke das habe ich prinzipiell verstanden.

Das würde bedeuten ...
1
ItemInfo^ AddItem(ItemInfo^ MyItem);

die Methode "AddItem" liefert also einen Pointer zu einem Objekt vom Typ "ItemInfo". Und der Parameter ist selbst schon ein Pointer auf ein Objekt vom Typ "ItemInfo".

Und ...
1
List<ItemInfo^>^ GetItems();

die Methode "GetItems" liefert einen Pointer auf eine Liste mit Pointern, welche jeweils auf ein Objekt vom Typ "ItemInfo" verweisen?

Und was ist hier der Unterschied ...
1
ItemInfo^ CreateItem(String ^ItemName, ItemInfo^ NewItem);

zwischen "^" vor dem "ItemName" und dem "^" hinter dem "ItemInfo". Letzteres wäre wieder ein Pointer auf eine "ItemInfo".

E.
114757
Lösung 114757 14.12.2015 aktualisiert um 14:14:01 Uhr
Goto Top
die Methode "GetItems" liefert einen Pointer auf eine Liste mit Pointern, welche jeweils auf ein Objekt vom Typ "ItemInfo" verweisen?
Jup.

Mehr dazu steht hier:
https://msdn.microsoft.com/en-us/library/yk97tc08%28VS.80%29.aspx
https://msdn.microsoft.com/en-us/library/yk97tc08.aspx