コード
class cat{
public:
void walk(){
printf("cat is walking \n");
}
void myAbc(){
void (*pKoo)();
pKoo = &this->walk;
}
void myDef(){
void(cat::*pFoo)();
pFoo = &this->walk;
}
}
};
結果
- ボイド (*pKoo)(); - 問題ない
- pKoo = &this->walk; - コンパイルエラー
- void(猫::*pFoo)(); - 問題ない
- pFoo = &this->walk; - コンパイル エラー。
質問
- なぜ不可能なのですか?不可能ならNo.1の用途は?
- なぜ4は不可能なのですか?不可能なら、No 3 の用途は何ですか?
概念的な説明のために助けてください。ありがとうございました