| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > inline функции и абстрактные типы данных |
| Автор: qnx 2.5.2006, 23:28 |
| по инлайн функциям меня интересует просто чем они от обычных отличаются........(на сколько я понял они подставляют на место вызова часть кода.......и за счет этого прога выполняется быстрее, хотя может больше занимать) По АТД у меня вобще нет никакого поятия................. и еще меня интересует что такое открытые и закрытые подпрограммы.......в чем в них разница????..................заранее благодарю........qnx@ukr.net icq 198830403 |
| Автор: BreakPointMAN 3.5.2006, 00:21 |
| qnx, насчет inline-функций почитай вот этот топик: http://forum.vingrad.ru/index.php?showtopic=82646&view=all, все разжевано донельзя... |
| Автор: maxim1000 3.5.2006, 00:47 | ||||
inline'овые вставки - только начало оптимизации когда идёт команда, а после неё вызов функции, компилятору не так-то просто (да и не всегда возможно) оптимизировать эти два куска вместе можно рассмотреть такой пример:
интересно то, что, если компилятор решит сделать f inline, то станет видно, что else-часть можно даже не включать в программу аналогично со всякими функциями доступа к членам класса типа get/set, если они реализованы прозрачно (т.е. просто транслируют доступ к переменной), то вставка их в место вызова может одновременно и уменьшить, и ускорить программу и т.д., и т.п. мне понравилась книжка Efficient C++ Programming Techniques - про inline'ы там очень даже немало расписано |
| Автор: MAKCim 3.5.2006, 07:14 | ||
и из друзей (методы, классы/структуры) |
| Автор: qnx 3.5.2006, 09:35 |
| inline функции я вроде понял..........я и так предпологал, что они так работают......просто в литературе нигде этого четко написано небыло,.........а меня больше интересует вопрос по поводу абстраутных типов данных................ |
| Автор: Romikgy 3.5.2006, 11:42 |
имхо абстрактными могут быть только методы, т.е. это метод объявленый , но не описанный К нему нельзя обратися , его сначала надо "переписать", плюс к этому он еще должен быть виртуальным |
| Автор: likehood 3.5.2006, 12:07 |
| Что касается АТД (абстр. типы данных), то это такие структуры данных, в которых не оговорена их реализация. Например, стек. Его можно реализовать в виде массива либо в виде списка, в зав-ти от задачи. При этом робота с обоими стеками идет с помощью одинаковых операций (push, pop, top), но реализованных по-разному. |
| Автор: Любитель 3.5.2006, 13:29 |
| Абстрактный класс - класс в котором есть хотя бы один чисто виртуальный (абстрактный) метод. Удобно для создания интерфейса класса. Инстансировать объекты этого класса нельзя (можно только наследуемых классов), зато можно исполльзовать указатели на наш класс, можно также ставить вызов абстрактных методов, в других методах. |