最初はC言語とC++の違いについて説明します。
実行環境については、C言語の時と何も変わりません。
コンソールアプリケーションの作成を通して、C++について書いていきます。
※これまでのC言語のプログラムと組み合わせて使う事が出来ますので、色々試しながらやってください。
C++はオブジェクト指向言語と呼ばれており、C言語とは様々な違いがあるのですが、ちょっとした事から説明していきます。
C++では、引数無しの場合の「void」を省略可能です。
例えば、引数無しのmain関数は↓のようになります。
<sample program cpp001-01>
int main() { return 0; } |
C言語編にも書いた事がありますが、変数宣言はプログラムの途中でも書く事が出来ます。
例えば、
<sample program cpp001-02>
int main() { int a; a = 3; int b; b = a + 5; int c; c = a + b; return 0; } |
も大丈夫ですし、
<sample program cpp001-03>
int main() { for (int i = 0; i < 5; i++) { } return 0; } |
このように、for文の中でも変数宣言が出来ます。
C++にはbool型という型があります。
bool型には、true(真)とfalse(偽)という2つの値が格納できます。
フラグをイメージしてもらえれば分かりやすいと思います。
<sample program cpp001-04>
int main() { bool bFlag; bFlag = true; if (bFlag) { bFlag = false; } return 0; } |
↑のように、if文と組み合わせて使ったり関数の戻り値として使います。
C言語のコメントは「/*」から「*/」の間に記述していました。
C++では、「//」が追加されています。
「//」は一行のコメントを記述する際に使います。
<sample program cpp001-05>
/* コメント コメント */ int main() { //コメント return 0; //コメント } |
#defineもC++では別の方法が用意されています。
#defineには型やスコープの概念も無く、副作用もある事からC++ではあまり使いません。
単純な定数の置き換えであれば、「const」を使います。
#define SUIT 4 |
と書く代わりに、
const int SUIT = 4; |
と書きます。
こうすれば「型はint型」という事がはっきりします。
また、
static const int SUIT = 4; |
と書く事で、スコープも決まります。
※関数内で書けば「ローカルスコープ」、関数外で書けば「ファイルスコープ」
const int SUIT = 4; const int NUMBER = 13; const int CARD = SUIT * NUMBER; |
と書くと「置き換えによる副作用」もありません。
※マクロについても別の方法があります。
C++の構造体も色々と変わっているのですが、最初なのでちょっとした事だけ書いておきます。
C++では、typedefで型定義をしなくても「struct」が省略出来るようになりました。
<sample program cpp001-06>
struct Player { int hp; int mp; }; int main() { Player player; return 0; } |
C言語のヘッダファイルは「〜.h」と言う名前でインクルードしていました。
C++では、「.h」は無くなりヘッダファイルの名前の前に「c」を付けるようになりました。
主に使ってきたヘッダファイルを書いておきます。
stdio.h → cstdio stdlib.h → cstdlib string → cstring time.h → ctime
などです。
とりあえずは、これくらいにしておきましょう。