それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

C++のクラスの作り方の基本サンプル

C++でAnimalを作るとどうなるのかを、基本的なサンプルを使って調べてみた。

クラスの作り方

class Animal {

  protected:
    std::string  voice;
    Animal(){
    }
  public:
    void say(){
       printf( "%s\n",  this->voice.c_str()  );
    }
};

クラスの継承

クラスの継承は、こんな感じになるらしい。

class Cat : public  Animal {
  public : Cat(){
    voice = "にゃ-";
 }
};

インスタンス化とポリモーフィズム

        Animal *ani;
        ani = new Cat;

ふむ。なるほど。

cpp まだよくわからないけど

基本的なことがわかれば少しはかけるようになるかもしれない。

ただ、Win32とかあのへんのCPPは型が多すぎてかんたんには手に負えない。

全てをまとめるとこんな感じ?

ちょっとしたことも書けないとダメだよね・・・・

#include <stdio.h>
#include <string>

class Animal {

  protected:
    std::string  voice;
    Animal(){
    }
  public:
    void say(){
       printf( "%s\n",  this->voice.c_str()  );
    }
};
class Cat : public  Animal {
  public : Cat(){
    voice = "にゃ-";
 }
};
class Dog : public  Animal {
  public : Dog(){
    voice = "わんわん";
 }
};
class Lion : public  Animal {
  public : Lion(){
    voice = "がおー";
 }
};

int main( void ) {

    char str[256];
    int ret ;
  while(1){
    printf("動物(いぬ,ねこ,ライオン)  or exit? ");
    ret = scanf("%s", str);
    if ( ret == EOF ){
      break;
    }
    if (
        strcmp( "ネコ", str ) == 0 ||
        strcmp( "ねこ", str ) == 0 ||
        strcmp( "neko", str ) == 0 ||
        strcmp( "cat", str ) == 0 ||
        strcmp( "Cat", str ) == 0 ||
        strcmp( "CAT", str ) == 0
        )
    {
        Animal *ani;
        ani = new Cat;
    }
    else if (
        strcmp( "いぬ", str ) == 0 ||
        strcmp( "イヌ", str ) == 0 ||
        strcmp( "inu", str ) == 0 ||
        strcmp( "dog", str ) == 0 ||
        strcmp( "Dog", str ) == 0 ||
        strcmp( "DOG", str ) == 0
        )
    {

      Animal *ani;
      ani = new Dog;
      ani->say();
    }
    else if (
        strcmp( "らいおん", str ) == 0 ||
        strcmp( "ライオン", str ) == 0 ||
        strcmp( "lion", str ) == 0 ||
        strcmp( "Lion", str ) == 0 ||
        strcmp( "LION", str ) == 0
        )
    {

      Animal *ani;
      ani = new Lion;
      ani->say();
    }

  }

  printf("\n");
  return 0;
}