Объявление прототипа функции после определения функции в классе с++
Есть такой код:
class Test
{
public:
void foo()
{}
void foo();
};
И как вы понимаете он выбрасывает ошибку, только мне не понятно почему? Я посмотрел в стандарте про объявление членов класса, но ничего, что могло бы это запрещать не нашёл. Почему данный код не работает?
Ответы (1 шт):
Автор решения: VladD
→ Ссылка
Такое поведение требуется согласно §11.1.4/5 [class.mem.general]:
(5) A member shall not be declared twice in the member-specification, except that
(5.1) a nested class or member class template can be declared and then later defined, and
(5.2) an enumeration can be introduced with an opaque-enum-declaration and later redeclared with an enum-specifier.
Чем именно руководствовались авторы стандарта, я, к сожалению, не в курсе.