Question 25: For the code snippet below, which of the following statements provide the correct order of constructor calls when o

class Base { public: Base(){cout << "In Base Ctor/n"; } class Nest { public: Nest(){cout << "In Nest Ctor/n"; } }; }; class Derive : public Base { public: Derive(){cout << "In Derive Ctor/n"; } }; void main() { Derive obj; }

A. Base constructor

Derive constructor

    B. Base constructor

Derive constructor

Nest constructor

    C. Base constructor

Nest constructor

Derive constructor

    D. Nest constructor

Base constructor

Derive constructor

    E. Derive constructor

Base constructor

Nest constructor

A

嵌套类是独立的类,基本上与它们的外围类不相关,因此,外围类和嵌套类的对象是互相独立的。嵌套类型的对象不具备外围类所定义的成员,同样,外围类的成员也不具备嵌套类所定义的成员。

 

嵌套类的名字在其外围类的作用域中可见,但在其他类作用域或定义外围类的作用域中不可见。嵌套类的名字将不会与另一作用域中声明的名字冲突。

 

嵌套类可以具有与非嵌套类相同种类的成员。像任何其他类一样,嵌套类使用访问标号控制对自己成员的访问。成员可以声明为 public、 private 或 protected。外围类对嵌套类的成员没有特殊访问权,并且嵌套类对其外围类的成员也没有特殊访问权。

 

嵌套类定义了其外围类中的一个类型成员。像任何其他成员一样,外围类决定对这个类型的访问。在外围类的 public 部分定义的嵌套类定义了可在任何地方使用的类型,在外围类的 protected 部分定义的嵌套类定义了只能由外围类、友元或派生类访问的类型,在外围类的 private 部分定义的嵌套类定义了只能被外围类或其友元访问的类型。

你可能感兴趣的:(Class,Constructor)