Re: クラスとは・・・? ( No.1 ) |
- 名前:ナッサム 日時:2007/07/25 11:21
クラス(Class)
オブジェクト指向で中心的な概念です。
C++では、クラスは構造体を拡張したもの(関数ポインタ等)だと私は思います。
詳しいことは「C++言語」や「オブジェクト指向」について調べてみると解りやすい説明等あるとおもいます。
|
Re: クラスとは・・・? ( No.2 ) |
- 名前:憂煉 日時:2007/07/25 15:56
クラスとはC言語の構造体を拡張した物で、内部に変数や構造体だけでなく関数まで含める事ができます。
クラスの内部にある変数や構造体等のデータはメンバと呼ばれ、関数はインスタンスと呼ばれます。
沢山のメンバを一まとめにして扱い、さらに他のクラスやグローバル関数から隔離する事が出来るのです。
メリットは大規模で複雑なプログラムを小さなクラスに分けて組む事により安全にプログラミングが出来る事です。
派生、継承、合成等の機能もありますが、プログラミングは使いたくなった時にその機能を学ぶのが得策なので今回は詳しく書きません。面倒くさくなったわけではありませんよ!?
|
Re: クラスとは・・・? ( No.3 ) |
- 名前:優柔不断 日時:2007/07/25 16:13
クラスとは、ほかのプログラムとは独立し、機能の独立
をするためのものです。
例えば、テレビというのは、持っている人は使った事が
あるでしょう。しかし、使うために中身を知る必要は
ないですよね。それに、勝手に中身を開けられて、勝手に、
中身変えられたら困りますよね。それと似たようなもので、
プログラムの中で、ある特定の部分だけで使うデータが、
あったら、それをほかのところで書き換えられるのは、
あまりいいことではありません。そこで、そのデータを守る
ために、その中身をブラックボックス化して、そのデータは、
その中でしか使えないようにするわけです。そして、
そのものを操るために、そのテレビで言うリモコン、
スイッチを提供するのです。そして、そのリモコンを
使ってプログラムの他の部分から操るようにする。その
ような手法の事をオブジェクト指向プログラミングと
いうのです。それによって、より独立したプログラミング
ができるようになるのです。なぜならば、そのクラスについては、
プログラムのほかの場所の干渉を受けなくなるからです。
そして、クラスの使い方は以下の通りです。
クラスを宣言する。→クラスのメンバ関数を定義する。→
クラスを定義する。→構造体アクセスと同じ要領で、
公開メンバにアクセスする。
クラスの宣言の仕方は。↓
class クラス名{
非公開関数、変数(外からアクセスできない)
の宣言(プロトタイプと同じ要領で)
public:
公開関数、変数(外からアクセスできる)
の宣言(プロトタイプと同じ要領で)
};
そして、メンバ関数の定義の仕方は↓
戻り値の型 クラス名::関数名(引数)
{
コード
}
そして、クラスの定義とは、構造体と同じで、
これらは、変数と同じように、宣言する必要があるの
です。
例
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nDmdShow)
{
クラス名 オブジェクト名
オブジェクト名.メンバ関数、変数名
}
などと使います。
|
Re: クラスとは・・・? ( No.4 ) |
- 名前:憂煉 日時:2007/07/25 19:25
大変失礼しました。僕が勘違いをしたまま書いたのでメンバとインスタンスの事に誤りがあります。
関数をインスタンス、データをメンバと呼ぶ。と書きましたが嘘っぱちです。
本当はクラスの内部の変数や関数の定義がメンバで、実際に使う時に作った実体の内部の変数や関数の事をインスタンスと言います。
C言語の構造体との違いは
@関数を含める事ができる。
Aアクセスを許可しないと外部からメンバやインスタンスにアクセスできない。
B継承をはじめとする機能が追加されている
です。
まあゲームのプログラミングでは余程凝った物を作るのでない限り使う必要は無いです。
|
Re: クラスとは・・・? ( No.5 ) |
- 名前:寿 日時:2007/07/25 22:03
みなさま、たくさんの意見等ありがとうございます。
自分にはまだクラスを使うのは早いのかな、と思いました。
もっともっと勉強するつもりです。
また困ったときはぜひよろしくお願いします。
|
Re: クラスとは・・・? ( No.6 ) |
- 名前:優柔不断 日時:2007/07/25 23:55
ただ、使用例を挙げると、Dxライブラリでサポートしていないコントロールの部類を実装する時は役に立ちます。
内部に干渉されないという分、コントロールの内部処理は独立しますから。
|