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:
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-Key: 290876

Url: https://administrator.de/contentid/290876

Printed on: April 24, 2024 at 03:04 o'clock

Mitglied: 114757
Solution 114757 Dec 14, 2015 updated at 13:14:05 (UTC)
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
Member: emeriks
emeriks Dec 14, 2015 at 12:43:25 (UTC)
Goto Top
Hi Jodel,
Danke, ich denke das habe ich prinzipiell verstanden.

Das würde bedeuten ...
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 ...
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 ...
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.
Mitglied: 114757
Solution 114757 Dec 14, 2015 updated at 13:14:01 (UTC)
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