В следующем коде:
#include <iostream>
class Foo{
public:
int *a, *b;
}
Foo::Foo(int x, int y) : a( new int ( x ) ) , b( new int ( y ) )
{
}
Foo test(1,2);
Если я хочу обработать разыменованное значение, хранящееся в переменной указателя a
, почему я пишу:
std::cout << *test.a << std::endl; //method 1
а не:
std::cout << test.(*a) << std::endl; //method 2
Мне кажется, что мы получаем доступ к разыменованному значению a
, то есть *a
, и это переменная-член объекта test
классаFoo
поэтому метод 2 кажется более синтаксически правильным. Метод 1 (верный способ, который я считаю), кажется, разыменовывает весь test
объект.