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

b42*_*283 3 c++ class

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

根据"C++ Primer",旧样式转换类似于:int(变量)或(int)变量,c ++标准引入的新样式包括static_cast <>,const_cast <>,reinterpret_cast <>和dynamic_cast <>.

  1. static_cast <>是否等同于"旧式演员"?

  2. 我认为如果我将基本数据类型(int,double ...)视为一个类,那么它是否很方便使用int(object)来进行转换?标准c ++是否将基本类型实现为类?

Unc*_*ens 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;
Run Code Online (Sandbox Code Playgroud)

2.基本数据类型不是类(例如,您不能从它们继承),但它们支持构造函数语法的一致性.

int i(10); //same as int i = 10
Run Code Online (Sandbox Code Playgroud)

要在基本类型之间进行转换,您确实可以使用此语法(尽管static_cast更突出).