クラス

このカテゴリーの記事(新着順)


コンストラクタ・デストラクタの呼び出し順 派生クラスのコンストラクタ、デストラクタがどのように呼び出されるか確認します。 #include <iostream> class base { public: // con...

日時: 2008年06月18日 20:49

派生クラスで隠蔽される関数の例を見てみます。 #include <iostream> class parent { public: int calc(int a, int b) { return (a + b); }...

日時: 2008年06月18日 19:21

基底クラスparentを継承する派生クラスchild_a, child_bがあり、さらにchild_a, child_b両方を継承するgrandクラスの定義を考えてみます。 #include <iostream> class...

日時: 2008年06月18日 18:49

virtualキーワードで仮想関数を宣言し、必ず子クラスでオーバーライドしなければならない指定が可能です。 以下のように書くと、必ず子クラスでのオーバーライドが必須となります。 class parent { public: virt...

日時: 2008年06月18日 18:21

virtualキーワードを指定することで、オーバーライドするメンバ関数を区別することができます。 例を見たほうが簡単です。 #include <iostream> class parent { public: voi...

日時: 2008年06月18日 17:28

スタックを実装したクラスを拡張する - C言語とC++入門勉強ルームで、例に出したstackクラスを固定サイズでなく、サイズを動的に変更できるようにします。 動的にメモリを確保するには、new演算子を用いて、インスタンス生成時に配列のサイズ...

日時: 2008年06月18日 16:08

前のページで、スタックを実装したクラスを拡張する例を確認しました。 この時、親クラスstackのメンバ変数、メンバ関数には、それぞれprivate, protected, publicという3つのアクセス制限のためのキーワードを使い分けてい...

日時: 2008年06月18日 15:19

C++のクラス定義・クラスでのスタック実装 - C言語とC++入門勉強ルームで書いた、スタックを扱うクラスを少し改良し、子クラスで機能を拡張させてみます。 継承する子クラスで拡張する機能は、以下の2つの機能を拡張します。 1.2つの要素をい...

日時: 2008年06月18日 14:39

クラスを用いたプログラミングには、クラスを継承することで機能を拡張したり、機能を分割できる、というメリットがあります。 親クラスは、継承する元となるクラスで、基底クラス、スーパークラスなどとも言います。 子クラスは、派生クラス、サブクラスな...

日時: 2008年06月18日 13:57

static・静的メンバ変数で、メンバ変数をオブジェクトではなく、クラスに属するようにする方法を見ました。 メンバ関数についても、static宣言が可能であり、非静的データを使用しない関数は、静的メンバ関数として定義したほうが効率的です。 ...

日時: 2008年06月09日 16:24

変数が、クラスに属していることを宣言するためには、staticキーワードでメンバ変数を宣言します。 staticキーワードで宣言された静的メンバ変数の数は、オブジェクトがいくつ生成されようとも、一つのみのままです。 staticでないメンバ...

日時: 2008年06月09日 15:27

クラスのメンバ関数には、データの読み込み専用など、メンバ変数の値をまったく変更する必要のないメンバ関数が存在する場合があります。 この読み込み専用のメンバ関数の場合、メンバ変数の値をあらかじめ変更できないように、定数のメンバ関数として宣言し...

日時: 2008年06月09日 14:33

クラスでは、定数のメンバを定義できます。 クラスの外側の場合は、定数の変数は、宣言時に初期化する必要があります。 const int data_size = 1024; クラスの定数メンバ変数 クラスの外側と違って、クラスの内側の場合、定数...

日時: 2008年06月09日 14:10

フレンド関数について解説しましたが、firend宣言は、関数だけでなくクラスにも利用できます。 あるクラス(クラスAとします)の中で、別のクラス(クラスBとします)をfriend宣言すると、クラスBが、クラスAのメンバにアクセスできるように...

日時: 2008年06月09日 12:50

クラスのメンバ関数でない、通常のルーチン関数から、クラス内のprivate宣言のメンバにアクセスするには、通常のルーチン関数をfriendキーワードで宣言することが必要です。 クラスは、自分のフレンド関数(friend)を指定することで、ク...

日時: 2008年06月09日 11:29

コンストラクタで自動的に初期化する - C言語とC++入門勉強ルームでは、inline関数を用いて、クラス宣言の外側でメンバ関数の実装を行いました。 class stack { public: void push(c...

日時: 2008年06月07日 03:18

クラスのインスタンス化は、以下のようにして行います。 class int_a { public: int_a(unsigned int size); int_a exp(10); // インスタンス化 in...

日時: 2008年06月07日 03:08

明示的に書かれていない場合でも、クラスには、すべてコンストラクタとデストラクタがあります。 クラスには、自動的に生成される、いくつかのメンバ関数が存在します。 class::class( ) デフォルトコンストラクタ。 コンストラクタが明示...

日時: 2008年06月07日 02:23

コピーコンストラクタとは、クラスをまるごとコピーする特別なコンストラクタのことです。 コピーコンストラクタの宣言の仕方は、以下のようになります。 class <クラス名> { public: <クラス名>(c...

日時: 2008年06月07日 00:34

コンストラクタには引数を渡すことができます。 #include <string> #include <iostream> // profileクラス class profile { public: ...

日時: 2008年06月06日 22:43

デストラクタは、コンストラクタの反対です。 コンストラクタが、変数(インスタンス)生成時に自動的に呼び出されるのと反対に、デストラクタは変数(インスタンス)破棄時に自動的に呼び出されます。 デストラクタの名前は、クラス名の前に、「~」(チル...

日時: 2008年06月06日 22:35

クラスでのスタック実装の例を考えましたが、クラス利用の際に・・・ class stack a_stack; // stack構造体の宣言。classは省略可。 a_stack.init(); // stackの初期化 1.sta...

日時: 2008年06月06日 22:16

前ページで、構造体でのスタック実装を見ました。 構造体でもスタックを実装できましたが、この場合、構造体のデータへのアクセス保護などは考慮されていません。 C++のクラスを利用すれば、構造体のようにデータを保持すると同時に、データを操作する一...

日時: 2008年06月06日 21:34

スタックとキューについて理解できたら、実際の、要素の追加と取り出しを見てみましょう。 データをスタックに入れるには、プッシュ演算(push)を使用し、データをスタックから取り出すには、ポップ演算(pop)を使用します。 スタック演算 演算 ...

日時: 2008年06月06日 16:25

スタックを実装するクラスを作っていく。 と、その前に、スタックとキューの説明。 スタックとキューは、データを操作するためのアルゴリズムで、次の2つの操作を行います。 ・要素を追加する ・要素を取り出す スタック スタックは、要素を追加した順...

日時: 2008年06月06日 16:02






あわせて読みたいブログパーツ
フィードメーター - C言語とC++勉強ルーム