Запрос сеттеров и геттеров подразумевает, что у вас есть класс с элементами данных, которые вы хотите инкапсулировать.Вот пример:
class Student
{
public:
explicit Student( std::string name )
: _name{ std::move( name ) }
{}
std::string GetName() const { return _name; } // Getter only; set at construction time
double GetHomework( int index ) const
{
return _homework.at( index ); // Throws if out of range
}
void SetHomework( int index, double grade )
{
_homework.at( index ) = grade;
}
// ...
private:
const std::string _name;
std::array<double, 6> _homework;
// ... etc.
};
Класс Student имеет методы получения и установки для своих свойств.Преимущество состоит в том, что вы можете выполнять проверку ошибок (здесь это делается с помощью функции std::array::at()
для проверки диапазона), защиту потоков, файловый / сетевой ввод-вывод, кэширование и т. Д.