ローカルなんとか

c++で関数内関数を使いたいんじゃ!

int hoge::hoge(){
    struct Inner{
        int addadd(int a){
            return a+a;
        }
    }
    return Inner::addadd(4);
}

こんなことって普通は無くて、クラスメソッドが使いたいんじゃ!

int hoge::hoge(){
    struct Inner{
        int addadd(const hoge* me,int a){
            return me->hogehoge(a) + me->hogehoge(a);
        }
    }
    return Inner::addadd(&this,4);
}

コンパイラ「そのメソッドはpublicではありません」。
そっかーやめとくか。