Я медленно, но верно прорабатывал главы LearnCpp.com, изучая C ++.У меня возникла путаница из-за различий между указателем и ссылкой на переменную.
Вот пример:
[код]
Fraction& Fraction::operator= (const Fraction &fraction)
{
// self-assignment guard
if (this == &fraction)
return *this;
// do the copy
m_numerator = fraction.m_numerator;
m_denominator = fraction.m_denominator;
// return the existing object so we can chain this operator
return *this;
}
[/ code]
Итак, эта функция для перегрузки оператора =, возвращает ли она адрес дроби или ссылку на дробь?
, возвращая * this в конце функции, является лиэто означает, что это адрес?Кроме того, я подумал, что «* this» является опровержением и приведет к тому, что будут указаны фактические данные.Так он возвращает адрес или фактические данные, на которые указывают?
И наконец, в выражении if «self assignment» if (this == & фракция) я всегда читаю «&» в списке параметров как «ссылку на переменную».Но это утверждение сравнивает его с «этим», которое является переменной-указателем.Так это указатель ("& дробь") или адрес?Означает ли включение «&» в тело функции значения данных, на которые указывают?
Пожалуйста, проясните эти вопросы.Это действительно помогло бы мне.Спасибо.
Дин.