C++/Przeciążanie operatorów: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Zmienilem komentarz " // ponieważ są to wartosci konstruktora domyślnego :) " bylo napisane "st" zamiast "są"
dodano przykład operatora ->*
Linia 352:
Operatory dekrementacji analogicznie do inkrementacji.
Należy mieć na uwadze, że przy własnych operatorach potrzebny jest "działający jak chcemy" operator= lub konstruktor kopiujący, jeśli go nie napiszemy kompilator wygeneruje go automatycznie, natomiast jeśli nasza klasa ma wewnątrz siebie wskaźniki tak w skopiowanym obiekcie będą one wskazywały na ten sam adres co wskaźniki oryginału
 
== Rzadko przeciążany operator ->* ==
Patrząc na listę operatorów możliwych do przeciążenia widzimy też ten operator, ale nie wiemy jak go przeciążyć, ani często nawet jak go użyć. Dlatego jako ciekawostkę zamieszczę te informacje.
Zacznę od normalnego działania tego operatora (bez przeciążania); jest to operator wywołujący funkcje wskazaną wskaźnikiem do funkcji wewnątrz klasy
<source lang="cpp">
#include <iostream>
using namespace std;
class Normalna
{
public:
void spie()
{
cout << "Jestem normalna i spie..." << endl;
}
void ideSpad()
{
cout << "Jestem normalna i ide do spanka..." << endl;
}
};
 
int main()
{
Normalna *przykladNormalnosci = new Normalna;
void (Normalna::*wskaznikDoNormalnosci)();
wskaznikDoNormalnosci = &Normalna::spie;
(przykladNormalnosci->*wskaznikDoNormalnosci)();
}
</source>