Как выглядит возвращаемая ссылка на объект с++
1) Я не понимаю как выглядит *this
2) Я не понимаю как выглядит возваращаемая ссылка на объект
3)Когда вовращается эта ссылка то что происходит в части c=a=b
MyClass& operator = (const MyClass& copyObject) {
//Копирую динамический массив
return *this
}
int main(){
MyClass a(5);
MyClass b(3)
MyClass c(3)
c=a=b;
}
Ответы (1 шт):
Автор решения: 0x00004
→ Ссылка
1)*this равносильна любой другой переменной(только означает что в данном случает речь идет об объекте внутри которой используется эта this,т.е. "этот объект", т.е. MyClass), объекту, то есть, просто копия. Например int a. C таким же успехом вы бы могли просто вместо *this написать MyClass.
2)Возвращаемая ссылка выглядит как обычная ссылка то есть int &ref=переменная,т.е. мы возвращаем ссылку а не копию.
3) с получает значение a , а получает значение b. По ссылке.
Простой пример:
class SomeClass
{
public:
SomeClass()
{
a = 5;
}
SomeClass(int l_a)
{
a = l_a;
}
SomeClass& operator=(const SomeClass &l_copy)
{
this->a = l_copy.a;
return *this;
}
int a;
};
int main()
{
SomeClass a;
SomeClass b(1);
b = a;
std::cout << b.a << std::endl;
}