『C++Primer』読書ノート(4)


1.条件演算子の使用は、普段はあまり使われていません...そのため、論理がよく分からないので、記録して印象を深めます.
int _tmain(int argc, _TCHAR* argv[])
{
	int a = 1;
	int b = 2;
	int c = 0;
	c = a > b ? a : b;
	cout<<c<<endl;
	getchar();
}
c = a > b ? a:bはa>bを先に判断し、真であればcを取得する.左の値、そうでない場合は右の値をとります.
2.sizeof演算子
参照タイプについては、被参照オブジェクトのサイズとして算出される
ポインタについては、ポインタの大きさが算出されます.4
intは4,charは1,stringは28
配列の場合、sizeof(配列名)は配列全体のサイズ(バイト数)を得ることができます.
int _tmain(int argc, _TCHAR* argv[])
{
	A a;
	A& ra = a;
	A* pa = new A(); 
	int num;
	char c;
	string s;
	cout<<sizeof(a)<<endl;
	cout<<sizeof(ra)<<endl;
	cout<<sizeof(pa)<<endl;
	cout<<sizeof(*pa)<<endl;
	cout<<sizeof(num)<<endl;
	cout<<sizeof(c)<<endl;
	cout<<sizeof(s)<<endl;
	getchar();
}
結果:
32 32 4 32 4 1 28
3.強制型変換
static_cast,const_cast
しかし、できるだけタイプ変換を少なくして、間違いやすいです.
const_についてcastの使用方法はcosnt(element)で、1つのタイプの変数をconst修飾子付き変数に変換します.
この変換は関数で使用できます.たとえばconstタイプしか受け入れられない関数では、この変換を使用してパラメータをconstタイプに変換できます.