第1章 第2節 C++のお約束


← 前に戻る | 次に進む →

ここでは、C++を使用する上での基本的な型や宣言についての解説をします。いろいろな型があって最初は戸惑うかもしれませんが、使い始めてみるとそんなに難しいことではありませんし、もし、意味や使い方を忘れてしまっても、もう一度このページを見ればよいだけのことです(^-^)。

まず最初に2種類のコメントの方法を述べておきます。一つ目は、//と書いた場所からその行の最後までがコメント行となります。また、二つ目の方法は、/**/でくくられた部分がコメントとして扱われます。二つ目のやり方はC言語と同じものです。

List 1.5 コメントの例

int main()
{
    int i;

    // これはコメントになります.
    /* これもコメントになります */

    i = 5;  // i に 5 を代入しました.

    return 0;
}

次に、C++で使われる基本となる型を以下に示します。

意味とサイズ
char 文字型; 文字を格納するのに自然なサイズで、少なくとも8ビットを持つ(short以下)
PC上での典型的なサイズは1バイト(8ビット)
int 整数型; 整数を扱う上で自然なサイズ(short以上、long以下)
PC上での典型的なサイズは4バイト(32ビット)や2バイト(16ビット)
short
short int
整数型; 少なくとも16ビットを持つ(char以上、int以下)
PC上での典型的なサイズは2バイト(16ビット)
long
long int
整数型; 少なくとも32ビットを持つ(int以上)
PC上での典型的なサイズは4バイト(32ビット)
float 浮動小数点型; 単精度(double以下)
PC上での典型的なサイズは4バイト(32ビット)
double 浮動小数点型; 倍精度(float以上、long double以下)
PC上での典型的なサイズは8バイト(64ビット)
long double 浮動小数点型; (double以上)
PC上での典型的なサイズは10バイト(80ビット)
unsigned 符号なし整数、論理値、ビット配列等を表す
unsigned char, unsigned int, unsigned short int , unsigned long int
signed 符号付きの型を明示的に表す
signed char, signed int, signed short int, signed long int

unsignedとsignedについて

intは(shortもlongも)デフォルトで符号付きなので、signed intは修飾のないintと同義語です。だから、ほとんどの場合、明示的にsigned intを使うことはないでしょう。

しかし、charについてはそれが異なります。char、unsigned char、signed charのそれぞれは3つの異なる型なのです。

なんだか、ごちゃごちゃして覚えるのが大変そうだなぁ、と思われるかもしれませんが、要はcharは文字を扱って、int/short/longは整数を扱って、float/doubleは実数を扱って、そしてunsignedは符号なしということだけなので、これさえ覚えておけば、当面は大丈夫でしょう。

では、上記の型についての使い方の例を下に示します。

List 1.6 いろいろな型を使ったプログラム

#include <iostream>
using namespace std;

int main()
{
    char   c;
    int    i;
    short  s;
    long   l;
    float  f;
    double d;
    long double ld;
    unsigned int ui;

    c  = 'A';    // 文字は'でくくる.
    i  = 10;
    s  = 20;
    l  = 30l;    // 最後のlはlong型を示す.
    f  = 1.23f;  // 最後のfはfloat型を示す.
    d  = 2.34;
    ld = 3.45l;  // 最後のlはlong double型を示す.
    ui = 40u;    // 最後のuはunsigned型を示す.

    cout << "char:         " << c  << endl;
    cout << "int:          " << i  << endl;
    cout << "short:        " << s  << endl;
    cout << "long:         " << l  << endl;
    cout << "float:        " << f  << endl;
    cout << "double:       " << d  << endl;
    cout << "long double:  " << ld << endl;
    cout << "unsigned int: " << ui << endl;

    return 0;
}


char:         A
int:          10
short:        20
long:         30
float:        1.23
double:       2.34
long double:  3.45
unsigned int: 40

List 1.6を見て、あれ? 文字型(char型)って、一文字だけしか扱えないの? と思った方、その通りです。文字列を扱うためにはchar型の配列にするか、ポインタにして文字列を入れるメモリを確保しなくてはなりません。え? 配列? ポインタ? と首を傾げている人もいるかもしれませんが、配列やポインタについての説明は後に回すことにしますので、それまでは理解していなくても構いません。その代わり後でしっかり覚えてくださいね。

では、文字列は扱えないままで進みましょう……なんて言ったら、それじゃ数字だけしかいじれないじゃないか、自分の名前すら表示できないなんてやってられん! と投げ出されても困るので、ここでは簡単に文字列を扱う方法を伝授いたします。

その名もずばり、string(文字列)クラスを使用します。これはSTLと互換性のある文字列テンプレートクラスbasic_stringによって実装された、とっても便利な標準C++の文字列クラスなんです。え? え? え? くらす?? てんぷれーと?? えすてぃーえる??? 何のことだかさっぱりだ! と思っているかもしれませんが、とりあえずここでは#include <string>を書き加えてstring str;のように宣言すれば文字列を扱うことができるようになるとだけ覚えておいてください。詳しい説明は後回しにします。

では、この文字列クラスを用いた例を以下に示します。

List 1.7 画面に"Hello, world!"と表示するプログラム(string版)

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string str1, str2;

    str1 = "Hello, ";
    str2 = "world!";

    cout << str1 + str2 << endl;

    return 0;
}


Hello, world!

どうです? とっても簡単でしょう(^-^)。

この節では、後回しにされたものがいっぱい出てきましたが、まったく気にしなくてもいいですよ。最初から、全部は覚えられないのですから、使うところから覚えていきましょう。特にC++のような巨大な言語はね。


← 前に戻る | 次に進む →


Copyright (C) Noriyuki Futatsugi/Foota Software, Japan.
All rights reserved.
d2VibWFzdGVyQGZ1dGF0c3VnaS5uZXQ=