Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2021, 15:28   #11
apofioz
Форумчанин
 
Регистрация: 22.01.2014
Сообщений: 313
По умолчанию

И как я могу узнать ,по объявлению функции, какой тип связывания она имеет? если автор просит узнать, какой тип связывания использует ваш компилятор...! И да, я эти вопросы не с потолка беру, наверное что-то читал. А про различия в терминологии разных авторов ничего не говорит.

Последний раз редактировалось apofioz; 23.02.2021 в 15:51.
apofioz вне форума Ответить с цитированием
Старый 23.02.2021, 15:32   #12
apofioz
Форумчанин
 
Регистрация: 22.01.2014
Сообщений: 313
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
В догонку - читайте стандарт языка и/или учебник какой нибудь, где поясняются базовые вещи.
Стандарт или всё же учебник, где объясняются базовые вещи, вы в стандарт давно заглядывали, там сам чёрт ногу сломит, а объяснения такие, что не всегда понятно тем, кто в языке рубит. Но это видимо, так, мелочь.
apofioz вне форума Ответить с цитированием
Старый 23.02.2021, 17:06   #13
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 947
По умолчанию

Цитата:
Сообщение от apofioz Посмотреть сообщение
С того, что нет ключевого слова virtual. Есть ещё какие-то причины считать не так?
в конце сигнатуры функции нужно дописать override. Если компилятор отреагирует спокойно, значит функция уже виртуальная. Иначе - взбрыкнёт
Алексей1153 вне форума Ответить с цитированием
Старый 23.02.2021, 20:59   #14
apofioz
Форумчанин
 
Регистрация: 22.01.2014
Сообщений: 313
По умолчанию

Цитата:
Сообщение от Алексей1153 Посмотреть сообщение
в конце сигнатуры функции нужно дописать override.
Это стандарт C++11, если не ошибаюсь?! А что делать, если не поддерживается этот стандарт? Код ведь и до него писали, как более обобщённо это сделать, не привязываясь к какому-либо стандарту?...
apofioz вне форума Ответить с цитированием
Старый 24.02.2021, 06:54   #15
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 947
По умолчанию

Цитата:
Сообщение от apofioz Посмотреть сообщение
А что делать, если не поддерживается этот стандарт?
можно сменить компилятор. Или продолжать пользоваться каменным топором.

Некоторые старые IDE умеют отображать, виртуальная ли это функция. В конце концов, это можно проверить при помощи компилятора - если в самом первом предке виртуальную функцию сделать чистой, то не получится создать экземпляр потомка, если функция не переопределена
Алексей1153 вне форума Ответить с цитированием
Старый 24.02.2021, 11:25   #16
apofioz
Форумчанин
 
Регистрация: 22.01.2014
Сообщений: 313
По умолчанию

Цитата:
Сообщение от Алексей1153 Посмотреть сообщение
можно сменить компилятор. Или продолжать пользоваться каменным топором.
Можно, но суть языка от смены компилятора не поменяется, а все эти навороты только отвлекают и усложняет. К тому же в книге об override ничего не упоминалось.

Цитата:
Сообщение от Алексей1153 Посмотреть сообщение
В конце концов, это можно проверить при помощи компилятора - если в самом первом предке виртуальную функцию сделать чистой, то не получится создать экземпляр потомка, если функция не переопределена
Думаю, именно этот ответ верен.
Код:
class Pet 
{
	public:
		virtual string speek() =0 const;
};

class Dog : public Pet 
{
	public:
		string speak() const { return "Bark!"; }
};
apofioz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Полиморфизм. asmars Общие вопросы C/C++ 31 19.07.2012 12:33
Полиморфизм Кудаив Помощь студентам 3 20.05.2012 14:03
Полиморфизм. Wa1demar Общие вопросы C/C++ 0 04.03.2012 14:23
Полиморфизм Anubys Помощь студентам 1 26.12.2011 20:42
Полиморфизм Zorgan Visual C++ 22 29.08.2011 12:23