【C++】C++の基本的な言語機能①
約二週間ぶりとなるが、C++98の知識しかない俺のためのC++の独り勉強会。そろそろブループリントにも取り掛かりたいが、一応、C++も一通りやらなきゃならない。こないだ auto なんてステートメントも出てきたし。
参考書
前回と同じ、翔泳社の「独習C++新版」
C++17対応とされている。
この記事のタイトルは、参考書の第1章のもの。前回と違ってこの記事の目次&見出し&小見出しも参考書の項目名や節目をそのまま拝借させてもらう。
Hello, world
流石に復習する必要がない。
変数と関数
新しいC++の話はなさそう。
演算子
新しいC++の話はなさそう。
条件分岐
三項条件演算子
C++98になかったはず。
組み込み型とポインター
*が間接参照演算子という名前だったり、constポインターのことは俺が知らなかっただけかもしれない。constポインターはアドレスは書き換えられるけど、アドレスが指す中身は変えられないんだそうだ。一度も使った覚えがない。
キャスト演算子にstatic_castというものがあるらしい。キャストは当然知っていたが、static_castは新しいC++なんだろうか。static_cast以外は第11章の「実行時型情報とキャスト演算子」に出てくるんだそうだ。
でも確かに<int>なんて書き方は知らなかったし、キャストされる方に括弧がつくってのも俺が知っているC++じゃない。ただ、ついこないだの【UE5】日本語文字化け その2【C++】の中に書いたStringCastの構文と同じだ。StringCast自体はC++のものじゃなくてUEによる定義だと思うが。
配列と文字列
int array[5] = { };
C++配列の初期化構文の特性を利用した技で、配列の要素を全て0で初期化したい場合に便利なんだそうだ。たぶん以前から使えたんだろうけど、知らなかった。
繰り返し
範囲for文
俺が知らない書き方。
参考書の利用例を端折ったが、こんな感じに書けるらしい。elemはvalueの配列の中身になる。
第1章は以上となる。まだautoが出てこなかった。