Метод получения, который не обязательно получает значение члена?

Скажем, у меня есть класс C ++, который содержит массив.

Например, функция-член этого класса может возвращать значение по определенному индексу. Я уверен, что это будет считаться методом получения.

Однако, как бы вы классифицировали подобную функцию, которая вместо этого просто возвращает логическое значение в зависимости от того, является ли значение существует в массиве?

Эта функция «получает» что-то, но не обязательно значение от члена класса. Будет ли это все еще считаться методом получения?

0

Решение

Это действительно имеет значение? Рассмотрим этот интерфейс:

struct Adder {
Adder(int a,int b);
int get_sum();
};

для пользователя этого класса не должно иметь значения, является ли реализация такой:

struct Adder {
Adder(int a,int b) : a(a),b(b) {}
int get_sum() { return a+b; }
private:
int a,b;
};

или это:

struct Adder {
Adder(int a,int b) : c(a+b) {}
int get_sum() { return c; }
private:
int c;
};

Второй действительно возвращает член, и, согласно вашему определению, это будет метод «getter». Первое не означает, но означает ли это, что это не настоящий метод «получателя»? Возвращает ли метод на самом деле элемент или что-то еще, является деталью реализации и не должно иметь значения для вызывающей стороны, а также не должно влиять на имя, которое вы даете методу.

2

Другие решения

Других решений пока нет …