【初心者歓迎】C/C++室 Ver.43【環境依存OK】
at TECH
255:デフォルトの名無しさん
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
4971日前に更新/84 KB
担当:undef