面试题答案
一键面试优势
- 封装性增强:嵌套类可以访问外部类的私有成员,同时自身实现细节对外隐藏,提高了整体的封装性。这样可以将相关功能紧密结合,减少外界对内部复杂实现的干扰。
- 命名空间管理:嵌套类在外部类的作用域内,避免了全局命名空间的污染,使代码结构更清晰,尤其是在大型项目中,类名冲突的可能性大大降低。
代码示例
#include <iostream>
class Outer {
private:
int data;
public:
Outer(int value) : data(value) {}
// 嵌套类
class Inner {
private:
int innerData;
public:
Inner(int value) : innerData(value) {}
void printOuterData(const Outer& outer) {
// 嵌套类可以访问外部类的私有成员
std::cout << "Outer data: " << outer.data << std::endl;
}
};
};
int main() {
Outer outer(10);
Outer::Inner inner(20);
inner.printOuterData(outer);
return 0;
}
在上述代码中,Inner
类作为 Outer
类的嵌套类,Inner
类的成员函数 printOuterData
可以访问 Outer
类的私有成员 data
,体现了嵌套类对封装性增强的优势。同时,Inner
类在 Outer
类的作用域内,避免了与其他全局类名冲突,体现了对命名空间管理的优势。