Я пытаюсь вызвать переменную в своем классе, используя это ключевое слово двумя способами, но меня путают со вторым способом. Правильный способ разыменования бывает «(* this) .num», однако I задавался вопросом, почему «* (это) .num» тоже не прав. Я получаю ошибку с * (это) .num являетсяУказатели разыменования, использующие «this»
запрос члена «Num» в «этот», который имеет тип указателя класса сопзЬ '*
class::class(int n): num(n)
{
cout << "num= " << num << endl;
cout << "this->num" << this->num << endl;
cout << "(*this).num" << (*this).num << endl;
}
Потому что, если вы определяете
int i = 9;
int *ptr = &i;
cout<<*(ptr)<<endl;
и звоните * (ptr) Это работает. Но почему это не работает в моем классе?
Ваш код отличается от вопроса I. Ред. Расположение скобок –
Мой вопрос заключается в том, почему astrick должен находиться внутри скобок в классе, а с другой стороны, в другом совершенно другом сценарии astrick вне скобки не имеет значения. Я получаю что-то делать с вызовом переменной «num» в моем классе, но не знаю причины excat @EdHeal –