Было бы лучше, если я напишу это
"Лучше" субъективно.Вы установили это, чтобы быть проблемой производительности?Потому что, как правило, необоснованные микрооптимизации считаются плохой практикой программирования.
У CoW есть небольшие накладные расходы, но если вы не докажете, что это создает проблему для вас, это не должно вызывать беспокойства.Если бы предложенный вами метод был лучше, я уверен, что Qt использовал бы этот формат для автоматической генерации геттеров, а также предложил бы его в документации.
Это не означает, что ваш формат не будет объективно более эффективнымв вашем конкретном узком сценарии использования.Но это означает, что возвращаемые вами результаты могут не стоить дополнительных нажатий клавиш для реализации ручных методов получения, хотя вы можете использовать макрос для свойств, как это делают большинство людей.
Формат, используемый Qt, более универсален,например, ваш формат может быть проблематичным, если вы хотите использовать это свойство из QML, которое может не поддерживать строковые ссылки и еще не делегирует правильность констант из C ++.
Кроме того, возврат изменяемой ссылки открывает дверьизменять свойства объекта без прохождения правильного пути к коду, который также уведомит об изменении, что может иметь неблагоприятные побочные эффекты, если ваш код отслеживает изменения данных и реагирует на них.Я предполагаю, что вы имеете в виду свойства здесь, поскольку вы говорите об автоматически генерируемых методах получения, а не о простых членах класса.