我是c ++的新手,对c ++的演员有一点了解。
根据“C ++ Primer”,旧样式转换如:int( variable )或(int) variable ,c ++标准引入的新样式包括static_cast&lt ;>,const_cast<>,reinterpret_cast<>和dynamic_cast<>。
是static_cast<>相当于“旧式演员”?
我认为如果我将基本数据类型(int,double ...)视为一个类,那就不是了,那么只使用int( object )会很方便做铸造?标准c ++是否将基本类型实现为类?
答案 0 :(得分:9)
1。旧式演员阵容相当于不同演员阵容:
int i;
double d = 3.14;
i = static_cast<double>(d); //(double)d;
const char* p = reinterpret_cast<char*>(&d); //(char*) &d;
char* q = const_cast<char*>(p); //(char*) p;
2。基本数据类型不是类(例如,您不能从它们继承),但它们支持构造函数语法以实现一致性。
int i(10); //same as int i = 10
要在基本类型之间进行转换,您确实可以使用此语法(尽管static_cast更突出)。