Was ist der Unterschied zwischen dem Punktoperator (.) und -> in C++?
Diese Frage hat bereits Antworten:
- Was kann ich statt des Pfeiloperators `->` verwenden? (7 Antworten )
Antworten
Zu viele Anzeigen?
Tamás Szelei
Punkte
22099
Am1rr3zA
Punkte
6461
Verwenden Sie ->
wenn Sie einen Zeiger haben. Verwenden Sie .
wenn Sie eine Struktur (Klasse) haben.
Wenn Sie auf ein Attribut zeigen wollen, das zu einer Struktur gehört, verwenden Sie .
:
structure.attribute
Wenn Sie auf ein Attribut verweisen wollen, das über einen Zeiger auf den Speicher verweist, verwenden Sie ->
:
pointer->method;
oder dasselbe wie:
(*pointer).method
ezpz
Punkte
11421
gparent
Punkte
909
Beachten Sie, dass der ->-Operator für bestimmte Dinge nicht verwendet werden kann, zum Beispiel für den Zugriff auf operator[].
#include <vector>
int main()
{
std::vector<int> iVec;
iVec.push_back(42);
std::vector<int>* iVecPtr = &iVec;
//int i = iVecPtr->[0]; // Does not compile
int i = (*iVecPtr)[0]; // Compiles.
}
Logan Capaldo
Punkte
38523