忍者ブログ

神戸電子専門学校ゲームソフト学科の生徒が運営するGESのブログです。

   

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

第5回 C++講座 『オーバーロード』


中原です。

今回はC++の機能、オーバーロードについて説明したいと思います。

なんか1回1回が長いという不評があるようなので、短くまとめてみようかと思います。
でも、長くなったらすみませんー。

第5回 C++講座 『オーバーロード』

拍手[0回]


何時もの通り、まずは例からいってみましょう

class CPrint
{
public:

    void print( int val )
    {
        printf("int   の表示 : %d"¥n, val);
    }

    void print( float val )
    {
        printf("floatの表示 : %f¥n", val);
    }
};

例のクラスはただ単に、数字を表示するだけのクラスです。

メンバ関数が2つありますね。
よくみてみると分かると思いますが、関数名が同じです。
今までのC言語だと、コンパイルでエラーが出てしまうのですが、なんとC++言語ではこれで通っちゃいます。

では実際に使ってみたいと思います。


main()
{
    CPrint  p;

    int     iVal = 1;
    float  fVal = 2.0f;

    p.print( iVal );
 
    p.print( fVal );
}


これを実行すると、

int    の表示 : 1
float の表示 : 2.000000

と表示されます。

プログラム側が、渡した引数の型を勝手に解析してくれて、適切な方の処理を通ってくれるのですね。

また、これは引数の型だけでなく、数を変えても大丈夫です。

このことを、オーバーロード といいます。


今回はゲームにすぐ当てはまる例ではありませんでしたが(簡単ないい例が浮かばなかったので…)、実際には、『関数的には同じ意味なんだけど、中ではちょっと違うことをしたい』というときによく使われます。

当たり判定などで、中身のすることは同じなんだけど、引数によって当たり判定するものを変えたいってことありませんか?
そういう時に使えますよね。

実はといえば、C++言語の3本柱である、継承やら、ポリモフィズムを使えばオーバーロードを使わなくても出来たりするのですが…。
それはまたの機会に。

とは、言ってもオーバーロードの使い道はたくさんあります。
習うより慣れろですね。
皆さんイロイロ使ってみてください。
とっても便利なものだ気づきますよ。


以上で、今回の講義は終わりです。
なんとか短く出来たかな?

次回は、オーバーライドについて説明したいと思います。

中原でした。



PR

COMMENT

NAME
TITLE
MAIL(非公開)
URL
EMOJI
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
COMMENT
PASS(コメント編集に必須です)
SECRET
管理人のみ閲覧できます

TRACKBACK

Trackback URL:

ブログ内検索

最新コメント

[01/29 人面犬]
[10/01 8ch]
[09/12 uncle]
[09/10 某卒業生]
[06/07 uncle]

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

テスト

Copyright ©  -- GESブログ --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]