Почему в 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

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