可在内部域
中定义嵌套,以缩小符号可见性来帮助封装.
定义嵌套函数
void outerFunc(int parameter) {
int local;
void nestedFunc() {
local = parameter * 2;
}
struct NestedStruct {
void memberFunc() {
local /= parameter;
}
}
class NestedClass {
void memberFunc() {
local += parameter;
}
}
nestedFunc();//使用他们
auto s = NestedStruct();
s.memberFunc();
auto c = new NestedClass();
c.memberFunc();
}
void main() {
outerFunc(42);
}
嵌套定义可访问外部域中符号,而嵌套定义只允许在定义他们的地方使用.如main
就访问不了他们.
返回嵌套的对象仍然可在外部使用,主要是他们是个闭包.
嵌套更贵.占据更多空间.所以,不推荐使用.