Re: [pimpl] конвертирование класса в его реализацию и наобор
От: StevenIvanov США  
Дата: 11.06.08 12:22
Оценка: 2 (1)
Здравствуйте, chipmunk, Вы писали:

C>....



C>
C>class A {
C>public:
C>  void doSomething();  
C>private:
C>  class AImpl;
C>  AImpl* m_impl;
C>};

C>class AImpl {
C>public:
C>  void doSomething();
C>  void doSomethingOnlyFromLib(); // этот метод используется только внутри библиотеки, наружу выставлять его нет смысла
C>};
C>


C>или все-таки хреновый дизайн раз такого хочется ?


да почему же... самое простое, что может прийти в голову ввести метод getImpl в класс A:



class A
{
public:
void doSomething();

class AImpl;

// пометить, что for internal use only, и использовать все равно не получится
AImpl * getImpl()
{ return m_impl; }
private:
...
};


небольшой trade-off, но это ничего.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.