ロベール本

変数定義時に引数無しのコンストラクタを呼んではならない

ロベールのC++入門講座 06-04まず引数ありのコンストラクタを持つクラスを定義する場合 #include <iostream> using namespace std; class CSample { public: CSample (int num) {} }; int main () { CSample obj(100); return 0; } obj(100)のようにして引数を渡すこと</iostream>…

例外を発生させないnew(nothrow)演算子

ロベールのC++入門講座 05-15newでメモリを動的確保した場合、非常に稀ではありますがメモリ確保に失敗する場合があります。メモリ確保に失敗するとどうなるかは以前例外機構の勉強の時にチラッと出てきましたが、bad_allocという例外を発生させます。しかし…

トリグラフシーケンス

ロベールのC++入門講座 05-14別名「3文字表記」というC++の構文で使用される記号の代価記号のこと。例えば「{」は「?? #include <iostream> using namespace std; int main () ??< cout << "aaaa" << endl; return 0; ??> $ main aaaaなんか凄いですねこれ。ちゃんとコ</iostream>…

文字列リテラルの型

ロベールのC++入門講座 05-13文字列リテラルの型は正確にはconst char型の配列だそうです。てっきりポインタ型だと思っていました。自分の目で確認するため、sizeofしてみました。 #include <iostream> using namespace std; int main () { cout << sizeof("foo bar ba</iostream>…

nの符号を求めるテクニック

ロベールのC++入門講座 03-12真偽値が1と0なのを利用した、ある整数の符号を求めるテクニックの紹介がありました。 int sign = (n > 0) - (n < 0); nがもし正の整数の場合「(1) - (0)」となり、「sign=1」になります。nがもし負の整数の場合「(0) - (1)」と…

古のoverload指定子

ロベールのC++入門講座 03-10古いC++では関数のオーバーロードをするのにoverload指定子を使って明示的に指定する必要がありました。 int abs(int n); double abs(double n); overload abs(int), abs(double); しかしこのoverload指定子は1991年5月に廃止さ…

浮動小数点の数値誤差

ロベールのC++入門講座 03-09浮動小数点の話で少し驚いた。下記のようなコードを実行する。 #include <iostream> using namespace std; int main () { for (double i=0.0; i<1; i+=0.1) { cout << i << endl; } return 0; } 条件ではiは1以下までとなっているはずなの</iostream>…

ロベールのC++入門講座

購入しました。ロベールのC++入門講座作者: ロベール出版社/メーカー: 毎日コミュニケーションズ発売日: 2007/11/15メディア: 単行本(ソフトカバー)購入: 26人 クリック: 25,357回この商品を含むブログ (127件) を見るこれを読みながらまた一からC++を勉強…