我有一个情况我想隐藏一个基类和限制,可以从它继承的类:交通不便当朋友结构继承类
namespace _detail {
class Private abstract final {
struct Base abstract {
protected:
Base() {}
};
friend struct ::A;
friend struct ::B;
friend struct ::C;
};
}
struct A : _detail::Private::Base {}; //error
struct B : _detail::Private::Base {}; //error
struct C : _detail::Private::Base {}; //error
编译器告诉我,_detail::Private::Base
是无法进入A
,B
和C
,即使他们是Private
的朋友。我之前使用过这种模式没有问题,但与其他时间相比,我无法真正看到有什么不同。我没有看到什么?
'abstract final'? –
'friend struct A;'在名称空间'_detail'中声明一个结构为朋友。 – dyp
@sftrabbit它的工作原理,为什么不呢? – NmdMystery