Можно ли распознать нежелательное переоценку виртуальных функций? [дублировать]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Можно ли распознать нежелательное переоценку виртуальных функций? [дублировать]

Сообщение Anonymous »

Например: < /p>

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

struct A
{
virtual void go() { };
};

struct B : public A
{
void go() { };
};
неявное переопределение функции go может быть нежелательным, потому что не узнаваемо, что b :: go () скрывает или переопределяет то же самое Функция struct a или даже это может быть новая функция, которая не существует в struct a . переопределить функция C ++ 11 полезна, когда вам нужно желательное переоценку виртуальных функций, но в моем случае это нежелательно, и я не хотел переопределять функцию go () , это означает, что если Я знал, что есть виртуальная функция, которую я бы не переопределял IT в struct b .

Что я хочу, - это нечто похожее на [[check_names ]] атрибут предложение, которое не одобрило C ++ 11. У C ++ есть языковая функция для этого? Ошибка недоступна!) Если происходит неявное переопределение виртуальной функции? Если у них есть, можете ли вы привести пример для GCC? Предупреждение или что -то, что позволяет мне распознать нежелательное переоценку. Переходящий? Это может быть что -то вроде следующего кода: < /p>

struct A
{
virtual void go() { };
};

struct B : public A
{
virtual void go() { };
};
< /code>

или: < /p>

struct A
{
virtual void go() { };
};

struct B : public A
{
void go() override { };
};
< /code>

или что -то подобное с помощью атрибута. < /p>

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

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

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

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

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

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