8
ответов

Почему следует использовать идиому «PIMPL»? [Дубликат]

Backgrounder: Идиома PIMPL (Указатель на IMPLementation) является техникой для сокрытия реализации, в которой открытый класс оборачивает структуру или класс, который не может быть замечен за пределами библиотеки ...
вопрос задан: 9 September 2016 07:27
7
ответов

Члены парламента, не занимающие официального поста в pimpl классе?

Есть ли какая-либо причина класса реализации, как используется в pimpl идиоме иметь каких-либо членов парламента, не занимающих официального поста вообще? Единственная причина, о которой я могу действительно думать, состоит в том, чтобы защитить себя от с
вопрос задан: 1 February 2010 16:36
7
ответов

Идиома Pimpl на практике

Было несколько вопросов на ТАК о pimpl идиоме, но мне более любопытно на предмет того, как часто она усилена на практике. Я понимаю, что существуют некоторые компромиссы между производительностью и...
вопрос задан: 9 May 2009 14:10
7
ответов

Идиома Pimpl по сравнению с Чистым виртуальным интерфейсом класса

Я задавался вопросом, что сделает программиста для выбора идиомы Pimpl или чистого виртуального класса и наследования. Я понимаю, что pimpl идиома идет с одной явной дополнительной косвенностью для каждого...
вопрос задан: 5 May 2009 14:15
6
ответов

Как идиома pimpl уменьшает зависимости?

Примите во внимание следующее: PImpl.hpp class Impl; класс PImpl {Impl * pimpl; PImpl (): pimpl (новый Impl) {} ~ PImpl () {удалить pimpl; } void DoSomething (); }; PImpl.cpp #include "PImpl ....
вопрос задан: 29 August 2010 16:40
6
ответов

C++, возможно, не устранил pimpl идиому?

Как я понимаю, pimpl идиома, существует только потому, что C++ вынуждает Вас разместить всех частных участников класса в заголовок. Если заголовок должен был содержать только открытый интерфейс, теоретически, кого-либо...
вопрос задан: 20 November 2008 05:37
5
ответов

C++ pimpl идиома тратит впустую инструкцию по сравнению со стилем C?

(Да, я знаю, что одна машинная команда обычно не имеет значения. Я задаю этот вопрос, потому что я хочу понять pimpl идиому и использовать ее самым лучшим способом; и потому что иногда я...
вопрос задан: 21 May 2010 08:19
5
ответов

Идиома Pimpl с наследованием

Я хочу использовать pimpl идиому с наследованием. Вот основной общедоступный класс и его класс реализации: класс A {общественность: () {pAImpl = новый AImpl;}; пустое нечто () {pAImpl-> нечто ();};...
вопрос задан: 29 January 2009 12:00
3
ответа

Действительно ли это - хорошее место для использования шаблона PIMPL?

Я работаю над библиотекой, которая определяет клиентский интерфейс для некоторого сервиса. Под капотом я должен проверить данные, обеспеченные пользователями, и затем передать его процессу "механизма" с помощью класса Соединения от...
вопрос задан: 7 July 2010 11:29
3
ответа

делегирование в половые органы

Иногда, понятие C++ конфиденциальности просто экранирует меня :-) класс Foo {Панель структуры; Панель* p; общественность: Панель* оператор-> () константа {возвращает p; }}; структура Foo:: Панель {пусто...
вопрос задан: 1 June 2010 19:05
3
ответа

pImpl идиома и Тестируемость

pImpl идиома в C++ имеет целью скрывать детали реализации (=private участники) класса от пользователей того класса. Однако это также скрывает некоторые зависимости того класса, который обычно является...
вопрос задан: 7 May 2010 00:16
3
ответа

Автоматизируйте pimpl'ing классов C++ — там простой способ?

Pimpl является источником шаблона в большом количестве кода C++. Они походят на вид вещи, которой комбинации макросов, шаблонов, и возможно помогает немного внешнего инструмента, мог решить, но я не уверен...
вопрос задан: 25 October 2009 17:18
2
ответа

PIMPL и выделение стека

Таким образом, я думал о PIMPL и складываю выделение. Я писал библиотеку и решил использовать PIMPL для сокрытия члена парламента, не занимающего официального поста класса. Это означает, что мне объявили бы класс как это...
вопрос задан: 11 July 2010 02:33
2
ответа

хранение половых органов вне заголовков C++: чистый виртуальный базовый класс по сравнению с pimpl

Я недавно переключился назад от Java и Ruby к C++, и к моему большому удивлению я должен перекомпилировать файлы, которые используют открытый интерфейс, когда я изменяю сигнатуру метода закрытого метода, потому что также...
вопрос задан: 22 June 2010 11:02
2
ответа

Реализация pImpl с минимальным объемом кода

Какие приемы могут использоваться для уменьшения рабочей нагрузки реализации pImpl классы? Заголовок: класс Foo {структура Impl; повышение:: scoped_ptr <Impl> сам; общественность: Foo (международный аргумент); ~...
вопрос задан: 1 March 2010 03:57
0
ответов

Как использовать unique_ptr для pimpl?

Вот упрощение того, что я вижу, когда пытаюсь использовать unique_ptr для pimpl. Я выбрал unique_ptr, потому что я действительно хочу, чтобы класс владел указателем - мне нужно время жизни указателя pimpl ...
вопрос задан: 23 May 2017 12:10
0
ответов

Должен ли я использовать shared_ptr или unique_ptr

Я делал некоторые объекты, используя идиому pimpl, но я не уверен, использовать ли std :: shared_ptr или std :: unique_ptr. Я понимаю, что std :: unique_ptr более эффективен, но это не так уж и много ...
вопрос задан: 29 May 2016 16:01
0
ответов

Действительно ли идиома pImpl используется на практике?

Я читаю книгу Херба Саттера «Исключительный C ++», и в этой книге я узнал о идиома pImpl. По сути, идея состоит в том, чтобы создать структуру для частных объектов класса и ...
вопрос задан: 8 June 2015 10:41
0
ответов

Идиома программирования Java :Частный класс реализации

Я нашел эту конструкцию в каком-то коде. Есть ли какая-то польза от реализации частного статического класса A? Это напомнило мне идиому Pimpl в C++. Есть ли польза от использования идиомы Pimpl в...
вопрос задан: 10 August 2012 05:50
0
ответов

Используется ли идиома pimpl в c #?

Я работаю на C #и недавно начал изучать C++. Одна из вещей, с которыми я столкнулся, — это идиома pimpl. Я занимался разработкой C #для некоторых крупных фирм, но никогда не сталкивался с ним....
вопрос задан: 26 April 2012 17:44
0
ответов

Решает ли "решение" GotW #101 что-нибудь на самом деле?

Сначала прочитайте посты Херба из Sutters GotW, касающиеся pimpl в C++11: GotW #100: Compilation Firewalls (Сложность: 6/10) GotW #101: Compilation Firewalls, часть 2 (Сложность: 8/10) У меня есть некоторые ...
вопрос задан: 22 February 2012 17:02
0
ответов

Необходимо предоставить деструктор в PIMPL

// main_pimpl_sample.cpp #include "pimpl_sample.hpp" с использованием пространства имен std; int main () {pimpl_sample p; возврат 0; } // pimpl_sample.cpp #include "pimpl_sample.hpp" struct pimpl_sample :: impl {...
вопрос задан: 23 December 2011 18:59
0
ответов

pimpl-идиома в шаблоне; какой умный указатель?

Я обычно использую boost :: scoped_ptr для pimpl (по одной причине, потому что тогда у меня не будет сюрпризов, если я забуду разобраться с конструктором копирования) Однако с шаблонами я не могу просто поставить деструктор ...
вопрос задан: 5 December 2011 14:05
0
ответов

pimpl для шаблонизированного класса

Я хочу использовать идиому pimpl, чтобы пользователям моей библиотеки не требовались наши внешние зависимости (такие как boost и т.д.), но когда мой класс шаблонизирован, это кажется невозможным, потому что методы ...
вопрос задан: 22 October 2011 08:18
0
ответов

Совет C ++ от Code Complete по инкапсуляции?

В разделе «Хорошая инкапсуляция» в Code Complete рекомендуется скрыть частные детали реализации. Пример приведен на C ++. Идея состоит в том, чтобы полностью разделить ...
вопрос задан: 12 June 2011 08:51
0
ответов

Совместим ли pimpl с анонимными пространствами имен?

Я пытаюсь использовать шаблон pimpl и определить класс реализации в анонимном пространстве имен . Возможно ли это в C ++? Моя неудачная попытка описана ниже. Можно ли исправить это без ...
вопрос задан: 21 April 2011 14:38
0
ответов

Каковы плюсы и минусы использования d-указателей?

d-указатели широко используются в Qt они являются реализацией идиомы pimpl. Я знаю преимущества и недостатки идиомы pimpl. Но я упустил преимущества реализации d-указателей. Здесь ...
вопрос задан: 13 February 2011 11:57
0
ответов

Pimpl idiom without using dynamic memory allocation

we want to use pimpl idiom for certain parts of our project. These parts of the project also happen to be parts where dynamic memory allocation is forbidden and this decision is not in our control. ...
вопрос задан: 7 February 2011 14:48
0
ответов

Pimpl with smart pointers in a class with a template constructor: weird incomplete type issue

When using smart pointers with the pImpl idiom, as in struct Foo { private: struct Impl; boost::scoped_ptr pImpl; }; the obvious problem is that Foo::Impl is incomplete at the ...
вопрос задан: 7 February 2011 14:46
0
ответов

Включение всех методов в определение класса

Когда я использую идиому pimpl, это хорошая идея поместить все определения методов в определение класса? Например: // в Ah class A {class impl; boost :: scoped_ptr pimpl; ...
вопрос задан: 23 December 2010 09:32