【C++】オブジェクトの配列
- オブジェクトは変数を持っており、他の変数と同じ機能と属性を持っている
- オブジェクト配列へのアクセス方法も、ほかの変数配列と同じ
study108.cpp
#include <iostream> using namespace std; class samp { int a; public: samp( int n ) { a = n; } int get_a() { return a; } }; int main() { samp ob[4] = { -1, -2, -3, -4 }; for ( int i = 0; i < 4; ++i ) cout << ob[i].get_a() << ' '; cout << endl; return 0; }
実行
$ ./study108 -1 -2 -3 -4
この例では、-1から-4までの値をobコンストラクタ関数に渡している
samp ob[4] = { -1, -2, -3, -4 };
これは
samp ob[4] = { samp(-1), samp(-2), samp(-3), samp(-4) };
これと同じ。
study109.cpp
#include <iostream> using namespace std; class samp { int a; public: samp( int n ) { a = n; } int get_a() { return a; } }; int main() { samp ob[4][2] = { 1, 2, 3, 4, 5, 6, 7, 8 }; for ( int i = 0; i < 4; ++i ) { cout << ob[i][0].get_a() << ' '; cout << ob[i][1].get_a() << "\n"; } cout << endl; return 0; }
$ ./study109 1 2 3 4 5 6 7 8
このように二次元配列も扱うことができる。
study110.cpp
#include <iostream> using namespace std; class samp { int a, b; public: samp( int n, int m ) { a = n; b = m; } int get_a() { return a; } int get_b() { return b; } }; int main() { samp ob[4][2] = { samp( 1, 2), samp( 3, 4), samp( 5, 6), samp( 7, 8), samp( 9, 10), samp(11, 12), samp(13, 14), samp(15, 16) }; for ( int i = 0; i < 4; ++i ) { cout << ob[i][0].get_a() << ' '; cout << ob[i][0].get_b() << "\n"; cout << ob[i][1].get_a() << ' '; cout << ob[i][1].get_b() << "\n"; } cout << endl; return 0; }
$ ./study110 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
コンストラクタに複数の引数を渡すことができるが、その場合は長い初期化構文を使用しなければならない。