Jaka jest różnica między „::” „.” A „->” w c ++ [duplikat]
Możliwy duplikat:
Kiedy używam kropki, strzałki lub podwójnego dwukropka w odniesieniu do członków klasy w C ++?
Stworzyłem klasę o nazwie Kwadrat i mam w środku trzy pola int. Bloki kodu dają mi radę, że mogę dostać się do pola obiektu przez::
, .
i->
. Strzałka działa tylko, ale dlaczego? Jaka jest różnica między tymi trzema?
#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;
}