Qual é a diferença entre “::” “.” E “->” em c ++ [duplicado]
Duplicata Possível:
Quando uso um ponto, uma seta ou dois pontos duplos para se referir a membros de uma classe em C ++?
Eu criei a classe chamada Kwadrat e tenho três campos int dentro. O Code Blocks me dá conselhos que eu posso entrar no campo do objeto por::
, .
e->
. A flecha é aquela que só funciona, mas por quê? Qual a diferença entre esses três?
#include <iostream>
using namespace std;
class Kwadrat{
public:
int val1, val2, val3;
Kwadrat(int val1, int val2, int val3)
{
this->val1 = val1;
//this.val2 = val2;
//this::val3 = val3;
}
};
int main()
{
Kwadrat* kwadrat = new Kwadrat(1,2,3);
cout<<kwadrat->val1<<endl;
cout<<kwadrat->val2<<endl;
cout<<kwadrat->val3<<endl;
return 0;
}