提问人:happy 提问时间:6/21/2023 最后编辑:happy 更新时间:6/21/2023 访问量:69
在赋值重载期间按引用返回
Returning by reference during assignment overloading
问:
下面的函数适用于返回类型 Class、Class& 和 void。那么,它们之间有什么区别呢?
//deep copies one object into another
Club& Club::operator= (Club& obj) {
this->members_ = std::unique_ptr <Member[]> (new (std::nothrow) Member[obj.num_members_]);
if (members_ != nullptr) {
this->num_members_ = obj.num_members_;
for (int i = 0; i < obj.num_members_; i++) {
this->members_[i] = obj.members_[i];
}
}
else {
std::cout << "Memory could not be allocated.\n";
this->num_members_ = 0;
}
return *this;
}
我的教授告诉我要按价值返回,但我不明白为什么我们需要返回任何东西?
在主文件中,
club200 = club200a;
由于我们直接对它所指向的变量进行更改,为什么我们需要返回地址或值?我们不会将返回的值存储在任何位置。
另外,我知道引用用于链接运算符,但返回值到底发生了什么?
答: 暂无答案
评论