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

В чем преимущество использования Pimpl? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Странное поведение http://www.cyberforum.ru/cpp-beginners/thread601874.html
Здравствуйте еще раз :) Теперь возникла другая непонятка. Есть класс StringParser, объекты которого умеют разбивать строку на подстроки, разделенные запятыми. Всякий раз, когда вы вызываете метод...
C++ Инициализация элементов массива в конструкторе Доброго времени суток! Подскажите пожалуйста можно ли инициализировать элементы массива при помощи списка инициализации в конструкторе класса. Если можно то какой синтаксис, а если нет то почему? http://www.cyberforum.ru/cpp-beginners/thread601847.html
C++ Странные ошибки
Здравствуйте! У меня есть такой код: class StringParser { private: char* str; char* seperators; int position; public: StringParser (char* newStr) { str = newStr; seperators =...
C++ Ошибка при запуске программы (undefined reference to...)
Здравствуйте, пишу лабу по С++ и столкнулся с ошибкой при запуске данного кода, ошибка 248|undefined reference to `Podrazdelenie::scan()' #include <stdio.h> #include <tchar.h> #include "string.h"...
C++ Сколько различных натуральных чисел можно составить из цифр 0, 1, 2, 3, 4, 5, http://www.cyberforum.ru/cpp-beginners/thread601837.html
Сколько различных натуральных чисел можно составить из цифр 0, 1, 2, 3, 4, 5, если каждая цифра входит не более одного раза
C++ Требуется найти самую длинную непрерывную цепочку нулей в последовательности нулей и единиц Здравствуйте, не могу понять в чём может быть ошибка :) Решаю олимпиадную задачу. Но система находит в тесте 5 не верный ответ) В единственной строке входного файла INPUT.TXT записана... подробнее

Показать сообщение отдельно
grizlik78
Эксперт С++
1957 / 1450 / 116
Регистрация: 29.05.2011
Сообщений: 3,012
10.06.2012, 14:00
Я код лабораторных тоже не смотрел. Но в принципе выгода от использования pimpl заключается в уменьшении взаимозависимости между модулями в большом проекте и, как следствие, уменьшение времени компиляции.
Допустим у нас есть класс A, который необходимо встроить в класс B. Если использовать наследование, то при изменении закрытой части класса A (добавление/удаление приватных переменных и функций, изменение интерфейса приватных функций) придётся перекомпилировать все модули, которые включают определения классов А и B. Если использовать pimpl, то перекомпилировать придётся только модуль с реализацией класса A. Платой является некоторое (в большинстве случаев незначительное или даже нулевое) снижение производительности за счёт дополнительного уровня (что-то слова подходящего не подберу) косвенности что ли...
Ну и в pimpl нередко упрятывают платформо-зависимый код.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru