练习4.36
假设i是int类型,d是double类型,书写表达式i*=d使其执行整型的乘法而非浮点类型的乘法。
解答:
i*=static_cast<int>(d);
练习4.37
用命名的强制类型转换改写下列旧式的转换语句。
int i; double d; const string *ps; char *pc; void *pv;
(a) pv = (void*)ps;
(b) i = int(*pc)
(c) pv = &d;
(d) pc = (char*)pv;
解答:
(a) pv = static_cast<void*>(const_cast<string*>(ps));
(b) i = static_cast<int>(*pc);
(c) pv = static_cast<void*>(&d);
(d) pc = const_cast<const char*>(pv);
练习4.38
说明下面这条表达式的含义。
double slope = static_cast<double>(j/i);
解答:
将j/i的结果,强制转换成double类型。