タイトル

序論

タイトル

1,導入 言語とは コンパイラ VC
2,C++の概念 関数 クラス 変数
3,C++の利点 C++がなぜ、注目されているのか

1,導入

アプリケーションというものがあります。
これは、実行可能なファイルのことです。
Windows95のExploreを開くと、「.exe」とかかれたファイルがあります。
このファイルは実行可能で、いろいろな動作が可能です。
今、あなたが使っているブラウザもアプリケーションです。
これは、Windowsに限らず、MS-DOS、DOS/V、Mac、UNIX・・・つまり
あらゆるコンピュータはアプリケーションというものが存在します。
この重要なアプリケーションは、一般にはSOFTとして
買う(もらう)ことになります。
ところが、これは自分好みではないときがあります。
または、自分の欲するアプリケーションがないかもしれません。
そのようなときにプログラミングをする必要があります。

プログラミングとは、自分がコンピュータに実行させたい事柄を

順序立てて記述します。
記述といっても、コンピュータが理解できるのは、機械語のみです。
従って、機械語でプログラミングする必要があるのですが
機械語は人間にとって非常に難解です。
そこで、人間にとってわかりやすい記述を、機械語に変換するソフトがあります。
それがコンパイラです。

computer側 人間側
機械語 コンパイラ(VisualC++など) ソース

ソースをつくることをプログラミングといいます。
以下にソースの例を示します。(C++の場合)

#include <iostream.h>

void show(int a[],int number)
{
int i;
int c=a[0];
int d=a[0];
for (i=0;i<number;i++)
{
	cout <<v a[i] <<",";
	if (c<=a[i])
		c=a[i];
	if (d>=a[i])
		d=a[i];

}
cout<<endl;
cout<<"The biggest number is "<<c<<endl;
cout<<"The smallest number is "<<d<<endl;
}


void main(void)
{
	int test[4]={3,1,4,0};
	show(test,4);
	int test1[11]={3,1,4,1,5,9,2,6,5,3,5};
	show(test1,11);
}

コンパイラは、以下の種類があります。

言語 易しさ 用途
 BASIC  初心者向け
  C++   本格的なソフトが作れる。
FORTRAN 科学技術計算に用いる
PASCAL  データを組み立てやすい
 COBOL  事務計算向け
 アセンブラ  × 一般に使わない
 機 械 語  × 一般に使わない

この中で、BASICとC++が有名です。
一般に初心者がBASICから初めて、より高度なことをしたくなると
C++に移行することが多いです。

●OS

アプリケーションは、それを実行できるOSが決まっています。
OSの種類は以下の通りです。

OS 普及 用途
Windows95 最も広く普及している。
WindowsNT 企業のLANやサーバー向け
Windows3.1 昔のWindows
MS-DOS PC98で用いたOS 10年前は主要なOSでした。
DOS/V × 一時期普及しそうだったがWindowsの登場で
MacOS 10%普及している。
UNIX × ワークステーション用

以下にVisual C++ 4.0の例を示します。
このようにC++も含めて、すべてのsoftはWindows95にのっています。
C++は、Windows95上でソースファイルをsoft(*.exe)に変換します。
C++は人間が書いたC++ソースコードを機械語へと橋渡しをします。

ところでcomputerは、一台一台構造が違っています。
OSはcomputerとsoftの橋渡しをするのです。

soft
(*.exe)
Visual C++ C++言語ソース
(*.c,*.cpp,*.h)
OS(Windows 95)
computer

●VB

BASICのソフトとして最も有名なのが MicrosoftのVisual Basicです。
現在ではVer5.0がでています。
これには、Standard版 Professional版 Enterprise版があります。
また、学生はアカデミックパックというのがあり、約半額で買うことができますが、
大手のソフトメーカーでないとアカデミックパックをだしてないことがあります。
Ver4.0についての定価は以下の通りです。(Ver5.0の価格は手元に資料がないのでわかりません)

  一般 アカデミック
Standard版 30000 12000
Professional版 78000 26000

Visual Basic 4.0は、Windows95,NT用のソフトです。
プログラミング方法が非常に簡単で、多方面から絶賛されています。
しかし、高度なこと(ハードを直接制御するとか)ができないといった
制約が多いのも事実です。

また、機械語ファイルのほかにdllファイル OCXファイルが必要になります。
従ってSoftを配布したり、別のパソコンで動作させるのに困るかもしれません。

ちなみに私はStandard版(Ver 4.0)をアカデミックパックで10800円で買いました。

●VC

C++のソフトとして最も有名なのも MicrosoftのVisual C++です。
現在ではVer5.0がでています。
また、Learning版 Professional版 Enterprise版があります。
Ver4.0についての定価は以下の通りです。(Ver5.0の価格は手元に資料がないのでわかりません)

  一般 アカデミック
Standard版 30000 12000
Professional版 98000 40000
Enterprise版 128000 -

Visual C++ 4.0 5.0は、Windows95,NT用のソフトです。
プログラミング方法が多少難しく、Winsowsの知識が必要なのですが
ほとんどすべてのことができます。(基本的にできないことはありません)
市販のソフトはほとんどこれで作れます。
ソフト会社も普通、これを使います。

また、VBのようにOCX,dllファイルが必要ないので、単独で実行することができます。
(ただし、Pro版以上で可能です。Learning,Standard版は単独で実行できません。)

ちなみに私はProfessional版をアカデミックパックで40000円で買いました。

上上へ


2,C++の概念

C++は、C言語をObject指向にしたものです。
C++は、基本的にC言語を受け継いでいます。

●関数

C++言語の大きな特徴は関数です。
関数にデータを渡すと関数内の命令が実行され、その結果が帰っていきます。
まるで、tというデータを入力するとf(t)という値が帰ってくる数学の関数に似ています。
ただし、データは、必ず渡す必要はありません。
また、データが帰ってこないようにしてもいいのです。

データ(1) 関 数 データ(2)

●クラス

今の関数や変数をひとまとめにしたのがクラスというものです。
クラスは共通の目的の作用をするものをまとめてあります。
例えば、文字を操作するもの、数学的なもの、描画に関するものなどです。
VCでは、100を越えるクラスがあります。

変数 変数 変数 関数 関数
クラス

●変数

変数の影響が及ぶ範囲は変数を定義した場所で決まります。
関数で定義したものは関数内でのみ影響します。
だから、関数が終了したらその変数は消滅します。
関数の外で定義すると、どの関数からもアクセスできます。(あまりやらない方がいい)

変数 a 変数 b 変数 a 変数 c 変数 d
クラス A クラス B

上の例ではクラスAの変数aと、クラスBの変数aは同じ名前ですが
別のクラスなので衝突することがありません。(別々の変数として認識される)
しかし、変数dはクラスA,B両方にかかりますので
これと名前が衝突しないようにする必要があります。

C++で重要なのは以上の3つです。

上上へ


3,C++の利点

いま、プログラミング言語には大きく2種類あります。
一つがBASICで、もう一つがC++です。
Microsoftからも、VisualBasic5.0やVisualC++5.0が最近発売されました。
(筆者のは両方とも4.0だが・・・)
この二つの違いを以下にまとめてみました。

項目 BASIC C++
普及度(家庭)
普及度(大学)
普及度(企業) ×
プログラミングしやすさ ×
価格 SD版で2万 SD版で2万
動作速度 △ コンパイルしても
遅い
◎ トップクラスのスピードで
BASICの10倍のスピードがある。
細かな動作 △ PAINT命令やハードウェアに
対する動作ができない
◎ 市販のソフトができることは
何でもできる
他の言語との類似性 △ このタイプの言語はあまりない ◎ Java,Pascal,Parlなどかなり似ている
開発の分業化 △ 分業するのは困難 ◎ クラス,関数ごとに作業を分担できる。
移植性 △ 困難 ◎ クラスは販売もされている
大規模なアプリ △ 変数の管理が大変 ◎ 変数のスコープが明確で
関数化するとわかりやすい

このようにC++は専門的なのですが、一度修得すると他の言語もその類似性から
簡単に修得できます。(英語からドイツ語を学ぶように)
大学や企業では、C++のスピード,分担できること,
他に移植できることなどがあり普及しています。

●クラス・関数

クラスは、MFC(Microsoft Function Class)としてVisualC++には付属しています。
このように、専門的で汎用性のある部分は付属(市販)のクラスに任せてしまえばいいので
重要な部分の開発が集中的に行えます。

3.4 関 数
3.4+5!
123.4

このように、関数の内部はブラックボックスとして考えていいので
開発が楽に行えます。また、関数をつくる必要があっても
Aさんが関数内部の開発、Bさんが関数をブラックボックスとして外側の
開発ができ、作業の分担ができます。

●他との類似点

C++はJava,Pascal,Parlなどと似ています。
以下は、「今宵の空」で用いられているJavascriptの例です。

function sin(n) {
	n=Math.sin(n/57.2957795130823);
	return n;
}
function kakudo(n) {
	while (n<0)
		n=n+360;
	while (n>=360)
		n=n-360;
	return n;
}

now = new Date();
year = now.getYear()+1900;
mon = now.getMonth()+1;
day = now.getDate();
week = now.getDay();
hour = now.getHours();
min = now.getMinutes();

このように、while構文や関数を使っている点、クラスがある点などC++に似ています。
(但し、Javascriptには、変数の宣言がありません。)

他の言語もC++に驚くほど似ています。

●処理速度

BASICは人間に親しみやすい言語で書かれています。従って、コンピュータの負担は
大きくなります。BASICは「インタプリター」といわれ、人間が書いたコードを
1行ずつ翻訳しては実行・・・というのを繰り返します。
一行ずつやっているので遅くなるのです。BASICに付属の「コンパイラー」は
あらかじめ翻訳しておきます。従って、インタープリターよりは高速になります。

C++は初めから「コンパイラー」を使って機械語をつくります。
しかも「最適化」という処理でCPUに適した機械語をつくるので非常に高速になります。
実はC++はプログラミング言語の中で最も高速な言語といわれています。
なぜならば、言語がコンピュータの処理に近いためです。

以前、(0,0)から(255,255)で囲まれた方形の領域に点を65536点
打つプログラムを書きました。結果は以下の通りです。

言語 速度(秒)
Visual Basic(インタープリタ) 11
Visual Basic(コンパイル後) 11
Visual C++ 0.7

CPU:Pentium 166MHz Memory 48MB で測定

このようにC++はBasicの15倍の速度がありました。
このことからもC++の高速性がわかります。

上上へ


戻るC++のPageに戻る