Возможный дубликат:
Когда я использую точку, стрелку или двойную двоеточие для ссылки на членов класса на С++?
Я создал класс под названием Kwadrat, и у меня есть три внутренних поля внутри. Блок кода дает мне совет, что я могу попасть в поле объекта ::, . и ->. Стрела - это только работа, но почему? Какая разница между этими тремя?
#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;
}