宣言は別のクラス内に現れても構いません。そのような宣言はネストしたクラスを宣言します。説明ネストしたクラスの名前は囲っているクラスのスコープに存在し、ネストしたメンバのメンバ関数からの名前探索はネストしたクラスのスコープを調べた後、囲っているクラスのスコープを訪問します。ポインタへの特別なアクセスは持ちません。ネストしたクラス内の宣言は、囲っているクラスの型名、静的メンバ、および列挙子のみを使用できます。(C++11未満)ネストしたクラス内の宣言は、非静的メンバのための通常の使用方法のルールに従って、囲っているクラスのあらゆるメンバを使用できます。