可在內部域
中定義嵌套,以縮小符號可見性來幫助封裝.
定義嵌套函數
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
就訪問不了他們.
返回嵌套的對象仍然可在外部使用,主要是他們是個閉包.
嵌套更貴.佔據更多空間.所以,不推薦使用.