Ваш подход не гибкий. Если у вас есть getter / setter
для каждой переменной, это означает, что вам не нужно переписывать свой метод set
, если вы добавляете что-то в свой класс.
Это не хорошо, потому что у вас не может быть const
и non-const
геттеров (которые используются редко, но иногда могут быть полезны).
Вы не можете копировать ссылки, поэтому ваш класс становится недоступным для копирования.
Кроме того, ссылка, инициализированная в вашем классе, означает дополнительную память, и если мы говорим, например, о классе вершин (хотя я думаю, что на самом деле это не должен быть класс) , это может стать катастрофа.
[Все, что следует, полностью субъективно]
Цель получения и установки, на мой взгляд, заключается не в простой модификации, а скорее в инкапсуляции последовательности действий, которая приводит к изменению значения или возвращает значение (которое мы рассматриваем как видимый результат ) .
Личная структура в случае вашего примера будет более эффективной, поскольку она оборачивает данные POD и логически «структурирует» их.