私が持っているとしましょう:
class A {
public:
class B {
};
};
最初のオプションでA::Bを使用する必要があるという事実を除いて、そのパブリックネストされたクラスと独自のcppファイルで定義されている通常のBクラスとの間に違いはありますか?
私が持っているとしましょう:
class A {
public:
class B {
};
};
最初のオプションでA::Bを使用する必要があるという事実を除いて、そのパブリックネストされたクラスと独自のcppファイルで定義されている通常のBクラスとの間に違いはありますか?
A::B
のメンバーであることを除いて、基本的に違いはありません。したがって、他のメンバーが持つであろうA
プライベートメンバーへのすべてのアクセス権があります。A
「B」のスコープルール以外に違いはありません。「B」を使用するクライアントは、そのスコープを「A::」で修飾する必要があります。「B」のネストは、転送参照するときに問題になることがあります。これは、C ++コンパイラでは通常、クラス内のクラスを転送参照できないためです(ただし、名前空間内のクラスを転送参照することはできます)。