К примеру у меня есть функция доступа для класса:Accessor функция в классе C++
class A {
public:
int a;
int& getA() const;
};
int& A::getA() const {
return a; // error: invalid initialization of reference of type 'int&' from expression of type 'const // int'
}
Вопросов: 1. Элемента данных «а» не типа «сопзИ Int», так почему Ошибка?
2. Также, когда я меняю тип возврата на int, он работает. Зачем?
Вызывающий 'getA' может изменить его, так как он возвращает ссылку на' a', но вы также говорите, что это функция 'const', указывая на то, что * не будет * изменять состояние объекта (что не является верный). Если 'a' является общедоступным, почему даже есть аксессор? – crashmstr
Используйте 'const int & getA() const; ' –
@crashmstr Это просто пример,« а »вполне может быть закрытым. – tinus91