gpt4 book ai didi

c++ - 我是否将 (int, double...) 视为类

转载 作者:太空狗 更新时间:2023-10-29 20:01:14 24 4
gpt4 key购买 nike

我是 c++ 的新手,对 c++ 的转换理解有点问题。

根据《C++ Primer》,老式的类型转换是:int(variable) or (int) variable,而c++标准引入的新类型包括static_cast <>、const_cast<>、reinterpret_cast<> 和 dynamic_cast<>。

  1. static_cast<> 是否等同于“旧式转换”?

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

最佳答案

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

关于c++ - 我是否将 (int, double...) 视为类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2350830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com