我认为(int,double ...)作为类

时间:2010-02-28 10:59:24

标签: c++ class

我是c ++的新手,对c ++的演员有一点了解。

根据“C ++ Primer”,旧样式转换如:int( variable )或(int) variable ,c ++标准引入的新样式包括static_cast&lt ;>,const_cast<>,reinterpret_cast<>和dynamic_cast<>。

  1. 是static_cast<>相当于“旧式演员”?

  2. 我认为如果我将基本数据类型(int,double ...)视为一个类,那就不是了,那么只使用int( object )会很方便做铸造?标准c ++是否将基本类型实现为类?

1 个答案:

答案 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更突出)。