プログラミング言語「C++」についてどんな言語なのか解説

目次から探す

クラスとオブジェクト

C++はオブジェクト指向プログラミング言語であり、クラスとオブジェクトの概念が重要です。

クラスは、データメンバーとメソッドをまとめたもので、オブジェクトはそのクラスのインスタンスです。

クラスの定義

クラスを定義するには、以下のような構文を使用します。

class クラス名 {
  // データメンバー
  // メソッド
};

例えば、以下のようにPersonという名前のクラスを定義することができます。

#include <iostream>

class Person {
public:
  std::string name;
  int age;
  
  void introduce() {
    std::cout << "私の名前は" << name << "です。" << std::endl;
    std::cout << "年齢は" << age << "歳です。" << std::endl;
  }
};

この例では、Personという名前のクラスが定義されています。この中には、nameageという2つのデータメンバーがあります。また、introduce()というメソッドも定義されています。

オブジェクトの生成

オブジェクトを生成するには、以下のような構文を使用します。

クラス名 オブジェクト名;

例えば、先ほど定義したPersonクラスからオブジェクトを生成する場合は以下のようになります。

Person person1;
person1.name = "山田太郎";
person1.age = 20;
person1.introduce();

この例では、Person型の変数person1を宣言しました。そして、nameageなどのデータメンバーに値を代入しました。最後にintroduce()メソッドを呼び出しています。

クラスの継承

C++では継承(inheritance)もサポートしており、既存のクラスから新しいクラスを作成することができます。

継承元(親)となる既存のクラスを基底(base)クラスまたは親(parent)クラスと呼びます。

そして新しく作成される派生(derived)または子(child)クラスでは基底(親)から継承されたデータや関数等を利用することができます。

以下は継承元(親)であるAnimalClassから派生したDogClass CatClass BirdClass の3つの子孫(derived) クラスです。

class AnimalClass{
public:
    virtual void cry(){std::cout<<"動物鳴く"<<std::endl;}
};

class DogClass:public AnimalClass{
public:
    void cry(){std::cout<<"わんわん"<<std::endl;}
};

class CatClass:public AnimalClass{
public:
    void cry(){std::cout<<"ニャーニャー"<<std::endl;}
};

class BirdClass:public AnimalClass{
public:
    void cry(){std::cout<<"チュンチュン"<<std::endl;}
};

上記コードではAnimalClass を基底(親) DogClass CatClass BirdClass それぞれ派生(子) させています。 各々cry関数内で異なる音声出力処理が行われていることが確認できます。

1 2 3 4 5 6 7 8

目次から探す