【c++入門】コンテナ、vectorを使ってみよう。
いよいよvector。
ちょっとわけわかめな所が出てきたが、ひとまず押し通ることにする。
途中つまづきそうになったのが、オブジェクトのコピーを渡すという表現。
メンバ変数を含むオブジェクトをそのまま引数にすると、そのコピーが渡されるという仕組み。
例えば、class Xがあったとして、
main側でX m;などでオブジェクトを作った場合、func(m)って感じでメンバ関数を呼び出す時は、オブジェクトのコピーがメンバ関数に渡されるらしい。
大きいデータの場合はそれだと困るので、参照などを使ってアドレスだけ渡すのがいいよ?と書いてあった。thisポインタとかもそろそろ絡んで来るのかな?
下記コードの28行目。メンバ変数をnameとphoneにデータが入ったあとに、オブジェクトを引数としてvectorに値をpush_backしている場面がよくわからなかった。が、それは冒頭に書いたようにコピーを渡したと解釈すればいいのか。。。いや、そもそも、オブジェクト自体がメンバ変数とメンバ関数を包括したものだから、引数(コピーの目印的)で使われるのかな。
まあ、気になるソースを書いて見る。
実行結果:
氏名を入力(xxxで終了): 山田太郎
電話番号を入力:09099999999
氏名を入力(xxxで終了): 山田花子
電話番号を入力:09044444444
氏名を入力(xxxで終了): xxx
全員のデータを出力します。
全部で2人
ーーーーー
09099999999
ーーーーー
09044444444
ーーーーー