42用d編程嵌套

可在內部域中定義嵌套,以縮小符號可見性來幫助封裝.
定義嵌套函數

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就訪問不了他們.
返回嵌套的對象仍然可在外部使用,主要是他們是個閉包.
嵌套更貴.佔據更多空間.所以,不推薦使用.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章