Der Pfeiloperator in C++
- Syntax (vereinfacht)
.----------. .--. .------.
--->| Ausdruck |--->( -> )--->| Name |--->
'----------' '--' '------'
Ein Ausdruck »p->n« wird als »(*(p)).n« interpretiert.
Damit stellt der Pfeiloperator eine Abkürzung für eine Dereferenzierung, der eine Eintragsauswahl folgt, dar.
Insbesondere auch Angaben wie »( *this ).x« können jetzt als »this->x« geschrieben werden.
Wir zeigen ein Beispielprogramm mit dem Pfeiloperator.
main.cpp
#include <initializer_list>
#include <iostream>
#include <ostream>struct pair
{ double x;
double y;void set
( double const x,
double const y )
{ this->x = x;
this->y = y; }void add
( pair const & p )
{ this->x += p.x;
this->y += p.y; }void print()
{ ::std::cout << this->x << '\n';
::std::cout << this->y << '\n'; }};pair sum
( pair p,
pair const & q )
{ p.add( q );
return p; }int main()
{ pair p;
pair q;
p.set( 2, 3 );
q.set( 1, 4 );
sum( p, q ).print(); }Protokoll
3
7
Die Priorität dieses Operators ist sehr hoch, so daß der Ausdruck vor diesem Operator in der Regel eingeklammert werden muß, wenn er selber einen Operator enthalten soll.