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

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

Войти
Регистрация
Восстановить пароль
 
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
#1

Класс, inline - C++

28.06.2012, 16:48. Просмотров 815. Ответов 4
Метки нет (Все метки)

Все ли функции класса по умолчанию содержат спецификатор inline?
Нужно ли его писать перед функциями класса?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2012, 16:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс, inline (C++):

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

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

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template <class T> class matrix { friend class diagonal; ...

inline - C++
В хедере определён класс со static-методами, в исходнике реализация этих методов. Один из методов определяется с ключевым словом inline....

#define VS inline - C++
Что работает быстрее: #define SQR(x) x*x void Func() { for(int i = 0; i < 10; ++i) { cout << SQR(i) << endl; ...

Inline-метод - C++
Как можно декларировать inline-метод класса не используя ключевое слово inline??

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
28.06.2012, 16:56 #2
Цитата Сообщение от Ksan Посмотреть сообщение
Нужно ли его писать перед функциями класса?
Зачем?
Это бесполезное ключевое слово, оно практически ни на что не влияет.
Компилятор просматривает все функции, и инлайнит их, если это выгодно, вне зависимости от того, есть ли у этих функций спецификатор inline.
0
grizlik78
Эксперт С++
1911 / 1443 / 112
Регистрация: 29.05.2011
Сообщений: 3,000
28.06.2012, 17:14 #3
Цитата Сообщение от diagon Посмотреть сообщение
Это бесполезное ключевое слово, оно практически ни на что не влияет.
Это если рассматривать это ключевое слово только как указание встраиваемости. Но у него есть гораздо более важное свойство: оно разрешает множественное определение функции. Поэтому если код функции находится вне класса, но в заголовочном файле, то она просто обязана быть объявлена как inline. Иначе при включении заголовка в двух модулях возникнет ошибка компоновщика.
С шаблонными функциями (код которых должен располагаться именно в заголовках) вообще непонятка. Вроде бы им inline не обязателен, но я постоянно сталкивался с проблемами из-за этого. Поэтому если пишу шаблонную функцию, то тоже в обязательном порядке объявляю её как inline.

Добавлено через 4 минуты
Цитата Сообщение от Ksan Посмотреть сообщение
Все ли функции класса по умолчанию содержат спецификатор inline?
Только те, которые определены внутри класса.
2
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
28.06.2012, 17:42  [ТС] #4
diagon, разве все компиляторы делают это? я компилю в Dev-cpp

Добавлено через 45 секунд
grizlik78,

всегда писал:
и без инлайна нормально работало

C++
1
2
3
4
5
6
7
8
9
10
11
class A
{
  public:
    void zzz():
};
 
 
void A::zzz()
{
 
}
0
grizlik78
Эксперт С++
1911 / 1443 / 112
Регистрация: 29.05.2011
Сообщений: 3,000
28.06.2012, 19:17 #5
Цитата Сообщение от Ksan Посмотреть сообщение
всегда писал:
и без инлайна нормально работало
Конечно без инлайна работает. Но если это записано в заголовочном файле и этот заголовочный файл подключить сразу в двух или более модулях одной программы, то работать перестанет.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2012, 19:17
Привет! Вот еще темы с ответами:

Inline функции - C++
Друзья!Инлайн функции могу быть определены только внтури класса?Или могут быть определены вне класса?Если вне,то как?Спасибо!

inline функции - C++
Как рабоает функция inline, и какие у неё преимущества? Если она такая крутая как я понял, то зачем простые функции??

inline функции - C++
Добрый вечер. Хотелось бы узнать, есть ли минусы у inline функций кроме увеличения размера файла? Везде пишут что использование "жирных"...

Описатель inline - C++
Описатель inline должен располагаться только в прототипе или определении функции или и там, и там?


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

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

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