Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Konstantin_D
14 / 14 / 2
Регистрация: 21.07.2011
Сообщений: 89
#1

virtual inline функция-член каласса - C++

18.03.2012, 22:11. Просмотров 1243. Ответов 4
Метки нет (Все метки)

Возможно ли сочтание модификаторов virtual и inline для функции-члена каласса?
Почему?
И может ли реальная функция быть таковой: виртуальной и встроенной? Или inline будет проигнорировано?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2012, 22:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос virtual inline функция-член каласса (C++):

Inline функции - на сколько должна быть маленькая функция, чтоб она подошла под inline? - C++
Здравствуйте. Знаю теорию, но не понимаю, на сколько должна быть маленькая функция, чтоб она подошла под inline ? Как...

inline функция - C++
Помогите плиз, трудности с функцией inline. Внешняя функция exam заносит в объект класса Stud результаты сессии. \\ вот часть задания по...

Перегрузка операций: friend-функция или функция-член класса - C++
Здравствуйте, меня интересует вопрос, в чем разница при перегрузке операторов через operator и friend. Вот к примеру такой код. class...

Inline функция в Debug режиме - C++
Добрый вечер! Есть класс, который ссылается на inline функции другого класса. Все реализации inline функции находятся в заголовочном...

inline функции vs инструкции inline функций - C++
Здравствуйте. Чтобы не писать повторно код, нужно использовать функции. Но если функции компактные, то их лучше делать inline функциями, т....

Не функция-член класса - C++
Фрагмент из книги, об дружественной функции operator<<: "Обратите внимание, что она не является функцией-членом класса String". Из чего...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
18.03.2012, 22:42 #2
Возможно. Потому что inline - рекомендация компилятору, что-то вроде "я тут подумал, а не встроить ли нам эту функцию? Но окончательное решение оставляю за тобой, уважаемый компилятор".
По логике вещей должно игнорироваться, потому что выходи противоречие: решение о том, какой реально код должен выполниться, для виртуальных функций происходит на момент исполнения программы, а встраиваться функция может только во время компиляции. Но кто знает, что там решит умный компилятор? Вдруг он определит, что динамическое связывание не очень-то и надо, отбросит его а очередная оптимизация (они выполняются как бы волнами) может и встроить такую функцию. Но это гадание на кофейной гуще, либо это всё прописано в стандарте (смотреть сильно лень), либо зависит только от изощрённости разработчиков оптимизирующего компилятора. Чисто логически виртуальная функция не должна встраиваться.
1
Konstantin_D
14 / 14 / 2
Регистрация: 21.07.2011
Сообщений: 89
18.03.2012, 22:50  [ТС] #3
Цитата Сообщение от silent_1991 Посмотреть сообщение
inline - рекомендация компилятору
Т.о. комбинация inline + virtual + =0 также возможна (с точки зрения синтаксиса), хотя и бессмыслена. Так?
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
18.03.2012, 22:54 #4
Konstantin_D, да, проверка показала, что возможно даже такое, но на это компилятор уже выдаёт предупреждение (однако смущает его не само сочетание virtual + inline + = 0, а то, что встраиваемая функция нигде не определяется). Код работает без ошибок. Вы, кстати, и сами могли бы написать тестовый код и проверить всё это.
1
Konstantin_D
14 / 14 / 2
Регистрация: 21.07.2011
Сообщений: 89
18.03.2012, 23:05  [ТС] #5
У меня установлен VS 2003. Он такое допускает и меня это насторожило. С другими компиляторами не работал. Сомневаюсь, что VS 2003 - эталон стандарта C++. Огромное спасибо за то, что помогли.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2012, 23:05
Привет! Вот еще темы с ответами:

Член-функция класса не работает - C++
Доброго вечера! Только что написал вот такой несложный класс, который определяет две характеристики предмета (вес и стоимость)....

Функция-член Ошибка класса - C++
Непонятная ошибка связанная с функцией-членом. Я в панике + почему-то не могу внести хедер с include ввожу #include "header.h" Работаю в...

Первый класс. Функция-член - C++
Добрый день! Пытаюсь собрать свой первый класс, но, кажется, не до конца понимаю всей сути. #include <stdio.h> #include <iostream> ...

Функция-член шаблонного класса - C++
Как правильно объявить функцию-член шаблонного класса? Класс: template <class SType> class Set { int len; // число членов ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.03.2012, 23:05
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru