はじめに
本投稿は、前回のC++の基礎の続きです。
まだ、ご覧になっていない方は、先に上記のリンクを参照下さい。
名前空間
名前空間とは、ライブラリ・関数の参照時に名前被りを防ぐためのものです。
using namespace ~~~で、名前空間の記述を省略可能になります。
以下のコードを参照下さい。
#include <iostream>
#include <string>
using namespace std;
int main(){
// 下記の2行は同じ意味です
std::cout << "Hello World" << std::endl;
cout << "Hello World" << endl;
// 下記の2行は同じ意味です
std::string = "Hello World!!!";
string = "Hello World!!!";
// 入力と出力
cin >> message;
cout << message;
}
下記の例では、functionという名前の関数を、
AとBという名前空間でそれぞれ定義することで使い分けをしています。
このように、同じ関数名であっても名前空間を分けることで、使い分けることができます。
名前空間の解説に関しては、こちらが非常に勉強になります。
#include <iostream>
namespace A
{
void function(){std::cout << "A" << std::endl;};
}
namespace B
{
void function(){std::cout << "B" << std::endl;};
}
int main()
{
A::f(); // A
B::f(); // B
}
for文
for文は以下のように記述します。
記述の仕方は、for(初期値;条件;増減){ } です。
#include <iostream>
int main(){
int x = 10;
// (初期値;条件;増減)
for (int i = 0; i <= 10; i++){
std::cout << i << std::endl;
}
}
配列
配列の宣言
C/C++での配列の宣言は、下記のように行います。
例えば、10個の要素からなる静的配列を宣言する場合は、int array[10] のように記述します。
これによって、array[0] から array[9] までの要素を格納するメモリが用意されます。
この時、確保されていない array[10] 以降の要素を参照しようとすると、
Segmentation fault エラーが起こります。
また、int array_2[] = [0, 100, 200, 300, 400] のように、配列の初期化を行うこともできます。
#include <iostream>
int main(){
// 配列の宣言
int array[10];
// 値の代入
array[0] = 10;
array[1] = 20;
array[2] = 30;
// 配列の初期化
int array_2[] = [0, 100, 200, 300, 400];
for (int i = 0; i <= 5; i++){
std::cout << array_2[i] << std::endl;
}
}
配列の要素数
C++で静的配列(コンパイル時点で要素数が決定している配列)の要素数を算出する場合には、
下記のように配列に割り当てられたメモリサイズ sizeof(array) を、
配列内の1つの要素のメモリサイズ (sizeof(array[0])) で割ることによって求めます。
sizeof(array)では、配列全体に割り当てられたメモリサイズを返すため、注意が必要です。
#include <iostream>
int main(){
// 配列の宣言
int array[10];
// 要素数の算出
int len = sizeof(array) / sizeof(array[0])
std::cout << len << std::endl;
}
今回は、C++の名前空間、for文、配列に関して記述しました。
引き継ぎ、基本的な内容に関してまとめていきます。