我有一個情況我想隱藏一個基類和限制,可以從它繼承的類:交通不便當朋友結構繼承類
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