Data un'interfaccia astratta e un'implementazione derivata da tale interfaccia, in cui i costruttori sono protetti (creazione di questi oggetti che sono disponibili solo da un factory di classe - per
Si consideri il seguente: class DirectoryIterator;
namespace detail {
class FileDataProxy;
class DirectoryIteratorImpl
{
friend class DirectoryIterator;
friend class File