частная неконстанта и общедоступная функция членства константы - сосуществующий в мире?

Если Вы используете инструменты Object Relational Mapping, или будет в будущем, которое я предлагаю Исключительный .

инструменты Some как LLBLGen могут автоматически исправить множественные имена как Пользователи Пользователю, не изменяя само имя таблицы. Почему это имеет значение? Поскольку, когда это отобразилось, Вы хотите, чтобы он был похож на Пользователя. Имя вместо Пользователей. Имя или хуже от некоторых моих старых таблиц баз данных, называющих tblUsers.strName, который просто сбивает с толку в коде.

Мое новое эмпирическое правило должно судить, как это посмотрит, как только это было преобразовано в объект.

одна таблица я нашел, что это не соответствует новому именованию, которое я использую, UsersInRoles. Но всегда будут те немного исключений, и даже в этом случае это выглядит хорошо как UsersInRoles. Имя пользователя.

15
задан mmocny 29 July 2009 в 15:59
поделиться

2 ответа

Разрешение перегрузки происходит до проверки доступа, поэтому, когда вы вызываете метод a для неконстантного A, неконстантный член выбирается как лучший вариант. Затем компилятор выходит из строя из-за проверки доступа.

Невозможно «заставить эту работу», я рекомендую переименовать частную функцию. Нужен ли частный аксессор?

14
ответ дан 1 December 2019 в 04:10
поделиться

Он выберет версию const , только если объект объявлен как const , в противном случае он выберет не - const версия (даже если это приводит к ошибке).

Это должно работать:

cout << ((const A*)&a1)->a() << endl;

или это:

A const& ra1 = a1;
cout << ra1.a() << endl;
3
ответ дан 1 December 2019 в 04:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: