Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> inline функции и абстрактные типы данных, Нужна литература по эти м темам 
:(
    Опции темы
qnx
  Дата 2.5.2006, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 20.10.2005

Репутация: нет
Всего: нет



по инлайн функциям меня интересует просто чем они от обычных отличаются........(на сколько я понял они подставляют на место вызова часть кода.......и за счет этого прога выполняется быстрее, хотя может больше занимать)          По АТД у меня вобще нет никакого поятия.................      и еще меня интересует что такое открытые и закрытые подпрограммы.......в чем в них разница????..................заранее благодарю[email protected]    icq 198830403  
PM MAIL   Вверх
Romikgy
Дата 2.5.2006, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 8
Всего: 146



Цитата(qnx @  2.5.2006,  22:28 Найти цитируемый пост)
по инлайн функциям меня интересует просто чем они от обычных отличаются........(на сколько я понял они подставляют на место вызова часть кода.......и за счет этого прога выполняется быстрее, хотя может больше занимать)    

Да 
Цитата(qnx @  2.5.2006,  22:28 Найти цитируемый пост)
 еще меня интересует что такое открытые и закрытые подпрограммы.......в чем в них разница????...

только наверное методы, 
открытые можно вызвать из любого кода,
закрытые только внутри принадлежащего класса/структуры,
вроде так , если че гуру поправят smile 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
BreakPointMAN
Дата 3.5.2006, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 15.9.2004
Где: Saratov

Репутация: 14
Всего: 24



qnx, насчет inline-функций почитай вот этот топик: http://forum.vingrad.ru/index.php?showtopi...46&view=all, все разжевано донельзя...

 


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
maxim1000
Дата 3.5.2006, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



Цитата(qnx @  2.5.2006,  22:28 Найти цитируемый пост)
подставляют на место вызова часть кода.......и за счет этого прога выполняется быстрее, хотя может больше занимать)

inline'овые вставки - только начало оптимизации
когда идёт команда, а после неё вызов функции, компилятору не так-то просто (да и не всегда возможно) оптимизировать эти два куска вместе
можно рассмотреть такой пример:
Код

void f(int mode)
{
  if(mode==1)
  {
    //тут много всякого кода
  }
  else
  {
    //тут много другого всякого кода
  }
}
void main()
{
  f(1);
}

интересно то, что, если компилятор решит сделать f inline, то станет видно, что else-часть можно даже не включать в программу
аналогично со всякими функциями доступа к членам класса типа get/set, если они реализованы прозрачно (т.е. просто транслируют доступ к переменной), то вставка их в место вызова может одновременно и уменьшить, и ускорить программу
и т.д., и т.п.
мне понравилась книжка Efficient C++ Programming Techniques - про inline'ы там очень даже немало расписано 


--------------------
qqq
PM WWW   Вверх
MAKCim
Дата 3.5.2006, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата

закрытые только внутри принадлежащего класса/структуры,

и из друзей (методы, классы/структуры) 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
qnx
Дата 3.5.2006, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 20.10.2005

Репутация: нет
Всего: нет



inline функции я вроде понял..........я и так предпологал, что они так работают......просто в литературе нигде этого четко написано небыло,.........а меня больше интересует вопрос по поводу абстраутных типов данных................ 
PM MAIL   Вверх
Romikgy
Дата 3.5.2006, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 8
Всего: 146



Цитата(qnx @  3.5.2006,  08:35 Найти цитируемый пост)
 абстраутных типов данных

имхо абстрактными могут быть только методы, т.е. это метод объявленый , но не описанный smile
К нему нельзя обратися , его сначала надо "переписать", плюс к этому он еще должен быть виртуальным smile 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
likehood
Дата 3.5.2006, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


666
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 21.12.2005

Репутация: 8
Всего: 24



Что касается АТД (абстр. типы данных), то это такие структуры данных, в которых не оговорена их реализация. Например, стек. Его можно реализовать в виде массива либо в виде списка, в зав-ти от задачи. При этом робота с обоими стеками идет с помощью одинаковых операций (push, pop, top), но реализованных по-разному. 
PM MAIL   Вверх
Любитель
Дата 3.5.2006, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



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


--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0546 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.