【初心者歓迎】C/C++室 Ver.43【環境依存OK】at TECH
【初心者歓迎】C/C++室 Ver.43【環境依存OK】 - 暇つぶし2ch255:デフォルトの名無しさん
07/10/04 15:37:19
>>252
>>254
class B
{
public:
void mf(){ privmf(); }
private:
virtual void privmf();
};

class D : public B
{
private:
void privmf();
}

int main()
{
D objd;
objd.mf();

return 0;
}

このプログラムでobjd.mf() 内で呼び出される関数がB::privmf()ではなく、
D::privmf()になるのですがなぜですか?
ポインタか参照に対して呼び出されたときにポリモルフィズム機構
が働くと思うのですが。
void mf(){ privmf(); }はvoid mf(){ this->privmf(); }と同じことですが、
このthisポインタが指している実際のオブジェクトの型がクラスDの
場合(上のプログラムの場合)はD::privmf()が呼ばれるということで
しょうか?


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch