Почему в C++03 разрешены члены данных с тем же именем, что и у класса?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему в C++03 разрешены члены данных с тем же именем, что и у класса?

Сообщение Anonymous »

Между стандартом C++98 и стандартом C++03 было сделано интересное изменение:

Код: Выделить всё

struct S {
int S;
};
Этот код действителен в C++03 и более поздних версиях, но был неправильно сформирован в C++98.
В частности, параграф 13 [class.mem] запрещен все элементы данных не имели того же имени, что и класс в C++98, но это правило было смягчено, так что если нет объявленного пользователем конструктора, вы можете иметь нестатический элемент данных с тем же именем. name.
Какова мотивация этого?
Какой важный вариант использования описан в этом документе, который требует пересмотра стандарта?

Подробнее здесь: https://stackoverflow.com/questions/784 ... -the-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»