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

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

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

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

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

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

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

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

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

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

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

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

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

C2511 Перегруженная функция, член не найден в - C++
Выбивает ошибку error C2511: 'Student::Student(std::string,std::string,std::string)' : overloaded member function not found in...

Функция-член в структуре. В чём ошибка? - C++
#pragma hdrstop #pragma argsused #include <tchar.h> #include <stdio.h> #include <iostream> struct date { int...

Непонятно работает функция - член класса - C++
Задача создать телефонный справочник с использованием бинарного дерева. Проблема возникает при попытке найти абонента по имени. Создал...

зачем нужна член-функция cout.setf? - C++
Всем здравствуйте, у меня такой вопрос: Начал изучать программирование C++. Попался мне вот такой пример и в нём есть строка, назначение...

Функция-друг одно класса, член другого. - C++
Привет. Не поможете как сделать чтобы функция одного класса была функцией-другом другого класса? я сделал так: Класс snake: ...


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

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

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