(メモ)C++言語のclassについて

C 言語学習者に向けた C++
C 言語と C++って何が違う?
C 言語と C++の一番の違いとして、C++では「 クラス 」というものが扱える。
クラスとは、データやそれを扱った処理などをひとまとめにしたものである。
C 言語で使用できた構造体では変数しか使用できないが、クラスでは 関数 も扱うことができる。
クラスをデータ型として宣言されたものを インスタンス とも呼ぶ。
アクセス修飾子について
クラスは中身となる変数や関数を(1)定義
した後、
(class クラス名)
(2)宣言 することで使用できる。
(クラス名 インスタンス名)
クラスでは、クラス外からのアクセスに関して
制限を加える事ができる。
private : クラスの中だけでしか利用できない
public
: クラスの外からでも利用できる
クラスを利用することで、データとそのデータを使った処理の目的を明確にすることができ、
バグを減らすことにも繋がり、効率的なプログラミングが可能になる。
クラスの定義と利用
クラスを定義するときは class に続いて
クラス名を入力
class Vector3d {
public:
double x, y, z;
アクセス修飾子 public のメンバ変数やメンバ関数は
Vector3d(){
インスタンスからでもアクセスできる
x=y=z=0
}
コンストラクタはインスタンス生成時に必ず呼び出される
Vector3d(double _x, double _y, double _z) {
初期化を行うための関数である
……
引数が異なれば複数定義できる
}
void normalize(){
クラスには関数を定義できる
クラスの末尾にはセミコロンを付ける
……
}
};
インスタンスを生成するときはクラス名に続いて
class Sphere{
インスタンス名を入力
public:
Vector3d center;
クラスも関数の引数に設定できる
double getIntersec(Vector3d &p, Vector3d &v){
double A = v.x * v.x + v.y * v.y + v.z * v.z;
インスタンス名に「.」で関数や変数にアクセスできる
各インスタンスの変数の値はそれぞれで別々に管理される
……
}