C ++ este Ponteiro
Cada objeto em C ++ tem acesso a seu próprio endereço por meio de um ponteiro importante chamado thisponteiro. othisponteiro é um parâmetro implícito para todas as funções-membro. Portanto, dentro de uma função de membro, pode ser usado para se referir ao objeto de chamada.
As funções de amigo não têm um thisponteiro, porque amigos não são membros de uma classe. Apenas funções de membro têm umthis ponteiro.
Vamos tentar o exemplo a seguir para entender o conceito deste ponteiro -
#include <iostream>
using namespace std;
class Box {
public:
// Constructor definition
Box(double l = 2.0, double b = 2.0, double h = 2.0) {
cout <<"Constructor called." << endl;
length = l;
breadth = b;
height = h;
}
double Volume() {
return length * breadth * height;
}
int compare(Box box) {
return this->Volume() > box.Volume();
}
private:
double length; // Length of a box
double breadth; // Breadth of a box
double height; // Height of a box
};
int main(void) {
Box Box1(3.3, 1.2, 1.5); // Declare box1
Box Box2(8.5, 6.0, 2.0); // Declare box2
if(Box1.compare(Box2)) {
cout << "Box2 is smaller than Box1" <<endl;
} else {
cout << "Box2 is equal to or larger than Box1" <<endl;
}
return 0;
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Constructor called.
Constructor called.
Box2 is equal to or larger than Box1