Professional Documents
Culture Documents
Pointeri La Clase
Pointeri La Clase
Odata declarata, clasa devine un tip valid., astfel poate fi folosita ca tip indicat printr-un pointer.:
Rectangle * prect; //
Membrii unui obiect pot fi accesati direct dintr-un pointer utilizind operatorul (->).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Interpretarea operatorilor:
expresia
Poate fi citit ca
pointerul x
&x
Adresa lui x
x.y
membrul y al obiectului x
x->y
member y of object pointed to by x
(*x).y member y of object pointed to by x (equivalent to the previous one)
x[0]
first object pointed to by x
x[1]
second object pointed to by x
x[n]
(n+1)th object pointed to by x
*x
Supraincarcarea operatorilor
Rezulattul adunarii a doi vectori cartezieni (3,1) si (1,2) va fi (3+1,1+2) = (4,3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Pointerul this
Pointerul this este un pointer la obiect. Este folosit la functia membrului clasei care se refera la obiectul
dat.
// example on this
#include <iostream>
using namespace std;
class Dummy {
public:
bool isitme (Dummy& param);
};
bool Dummy::isitme (Dummy& param)
{
Rezultat: yes, &a is b
if (¶m == this) return true;
else return false;
}
int main () {
Dummy a;
Dummy* b = &a;
if ( b->isitme(a) )
cout << "yes, &a is b\n";
return 0;
}
Membrii statici
// static members in classes
#include <iostream>
using namespace std;
class Dummy {
public:
static int n;
Dummy () { n++; };
};
int Dummy::n=0;
int main () {
Dummy a;
Dummy b[5];
cout << a.n << '\n';
Dummy * c = new Dummy;
cout << Dummy::n << '\n';
delete c;
return 0;
}
Rezultat:
6
7