更新
[2001.06.16]

Menu
1.Windows API
2.Borland C++ Builder
3.Visual C++ (作成中)
4.C/C++一般 
5.プログラム関連技術
6.プログラム関連基礎
7.情報処理試験関連

『悪いシステムを住宅に例えた図』2000.05.16 K.Takagi 
8.その他

たかぎのコンピュータ用語辞典


その他

このHPのコーディング規約
  • 制御文はカッコの後ろに中括弧。閉じた後はelse等を続けないで改行す
    る。制御ブロックの中身が1行の場合は括弧を付けない。
  •  ネストは8カラム(収まらない場合4にすることもあるかもしれない)
    演算子の前後は1ブランク空ける。for文の場合空けない。カンマの後も
    空ける
  • 主にシングルラインコメントを使用。(内容は少しくどい場合が多い。)
    基本的にハンガリ記法を使う。(nData とか szBuff)
    returnも括弧を付ける。return(0);
  • なるべくAnsiを守る。VC++の解説ではMS標準がつい出ることもある。

#include <string.h>

void sample()
{
        // カウントが存在しない場合は、szWorkに有効な文字列が入っているので
         // 複写。そうでなければ消してしまう。
       
if (nCount != 0){
                a
= b;
                strcpy(szBuff, szWork);
        }
        else{
                szBuff[0]
= 0x00;
                a
= 0;
        }
        for(i=0;i<nMax;i++){
                if(szBuff[i]
== '\t')
                        szBuff[i] =
' ';
                nData[i] = nTemp[i]
* DATA_MAX;
        }

 配色

項目
背景 黒または紺
通常 シルバー
演算子(シンボル)
キーワード シルバー太字
コメント 水色
数値、文字、文字列 ピンク
Wizard自動生成(VC++)

 

・C++ってなぁに?[実戦・C/C++言語36号より) [2000.10.30]


C言語とC++は、どう違うのでしょうか?

C言語は実はほとんどC++に含まれます。
ベン図で示すと右の図のようになります。

どういうことかと言うと、C++にC言語の内容を書いた場合、大概はコンパイル出来ます。
要するに文字通り、C++はCにプラスされたものなのです。
なんかの本に書いてありましたが、++Cでは無くC++だと。
細かいことは忘れました。


「C++とC言語の範囲」
2000.10.30 K.Takagi

基本的には、C++はCを便利にしたものです。

  • クラスという概念が導入された
  • ストリーム入出力
  • 関数のオーバーロードが出来るようになった。
  • テンプレート
  • bool演算子
        :

などなど、色々と便利な機能が追加されています。
言語の文法については以上のとおりです。

しかしこのままでは、「C++はC言語を便利にしたもの」で終わってしまいます。それだったら何も「C++」という名称にしないで、「C言語 ANSI199X年版」でよいわけです。

C++はC言語を便利にしたものだけど、それだけでは無く最大の違いは思想なのです。
C言語が手続き型なのにたいして、C++はオブジェクト指向が取り入れられているのです。

オブジェクト指向」という言葉は良く耳にすると思います。
objectとは、目的の意味ですが、さて、このオブジェクト指向とはいったい何でしょうか?

例えば、住所管理ソフトを作成するとした場合の、設計の思考過程です。

■手続き的な考え方では、

  • メイン関数
  • 画面を表示する処理
  • 入力を受け付ける処理。
  • ユーザが登録・削除・更新を指定してきた場合に住所ファイルに登録をおこなう処理
  • 印刷処理
         :

■オブジェクト指向的には、

  • 住所のファイル構造(DBのテーブル?)を考える。このファイルに対して更新や、追加、削除の処理を考える。(a)
  • 印刷処理を考える。(a)を使っておこなう。(b)
  • 画面を考える。この画面上の各種入出力の処理を考える。(a,b)を使用する。(c)
  • (c)を表示する処理(メイン関数)

なんだか、分かり難いというか、わざとらしくなってしまいましたね。

要するに目的から入るということです。
先に処理を考えるのではなく、目的の対象(上記例の場合はファイル画面または印刷すること)があって、それをいかに扱うかをまず考えるわけです。そしてそれを組み立てるのです。

それらの目的の対象を扱うのがクラスです。
以前にも少しだけ説明しましたが、クラスは超簡単に言ってしまえば、関数つき構造体です。

例えば上記例の住所録ファイルなら、ファイルのレコードを読み込んで編集したりするための各種変数の組があって、そして、そのクラスのメンバ関数には、そのファイルを処理するための各種関数が存在して、1セットになっているわけです。

このクラスという概念は、上記に列挙したC++の追加点では一項目で書いてしましたが、実はこのクラスがC++の中心なのです。

情報処理試験におけるオブジェクト指向には、インヘリタンスとか、ポリモアフィリズムとか、メソッド、カプセル化、インスタンス等、なんだかムヅカシイ言葉が出てきます。

これらのムヅカシイ言葉を実現するのがクラスです。

C言語ではオブジェクト指向が実現できないというわけではありません。組みようによっては、どちらでもそれぞれを実現できることでしょう。

[TOPへもどる] [Soft Page TOPへもどる]