Notice : 内容無保証。禁無断転載。リンク自由。

virtual_2.cpp

// virtual (2)
// 親クラスのメンバ関数を使う、うまくいかない例。

#include <stdio.h>

class Canimal {
public:
    void greet(void){printf("???\n") ;}
} ;

class Ccat : public Canimal{
public:
    void greet(void){printf("にゃ〜\n") ;}
} ;

class Cdog : public Canimal{
public:
    void greet(void){printf("わんわん\n") ;}
} ;

static void greet(Canimal& anAnimal) {
    anAnimal.greet() ;  // Canimalの子クラスなら誰でも使える
}

int main(void)
{
    Ccat    aCat ;
    Cdog    aDog ;

    greet(aCat) ;
    greet(aDog) ;

    return 0 ;
}

戻る
トップページへ戻る