Текущий get()
Функция-член в классе MyClass
определена ниже, тип возврата - const int&
. Мой вопрос: что будет разница, если я определил get()
функциюПример примера функции возврата в C++
int& get() const
или
int get() const
? И какой способ рекомендуется?
#include <iostream>
using namespace std;
class MyClass {
int x;
public:
MyClass(int val) : x(val) {}
const int& get() const {return x;}
};
void print (const MyClass& arg) {
cout << arg.get() << '\n';
}
int main() {
MyClass foo (10);
print(foo);
return 0;
}
возвращение 'int' намного проще –
Возвращение' int & 'означает, что вызывающий может сказать следующее:' myclass.get() = 42' – selbie
@selbie Перед тем, как 'get()' не будет компилироваться, потому что он пытается связать 'const int' в' int & '. – songyuanyao