class Counter {
    int iCurCnt;
    Counter(int iDefaultCnt) {
        iCurCunt = iDefaultCnt;
    }
    IncCounter(int iIncValue = 1) {
        iCurCnt += iIncValue;
    }
}
「ネストされた関数」を、「スコープ外から参照するいずこかに存在する変数のライフサイクル」が生存する限りにおいては、
   「該当のネストされた関数が参照するローカル変数」もまた、「元来のスコープを超えて生存する」、そのような機構、と考えておけば破綻しない。)function foo (x) return 2*x end
foo = function (x) return 2*x endと、ほぼ同じ意味。