![]() |
1
3
你只是想混淆你的代码,就这么简单。编译器告诉你的是完全正确的。
如果您对分配的值应该是什么有一个精确的概念,那么就使用它。我猜你有一些毫无根据的假设
就C而言,标准只是简单地说明了从一种整数类型到另一种整数类型的转换:
我想C++的观点与这方面没有多大区别。其他的答案提到了C++中的边界情况,你需要一个“C”风格的转换来否决C++给你的所有类型的检查。感觉到对它们的需要是坏设计的一个标志。 你举的例子肯定不是我能找到任何有效情况的。 |
![]() |
2
12
在C++中,C++风格的铸件是根据C++风格的铸件来定义的。所以对于每一个你可以做C风格的演员,都有一个匹配的C++风格的演员阵容(几乎)。 “几乎”是C样式的强制转换忽略了基类的可访问性。也就是说,不存在等价的C++风格的铸件如下:
所以,不,严格来说,完全抛弃C型演员是不可能的。但是,(C++)风格转换的组合的数量不足以计数。 以上是“语言答案”。您所经历的与C样式转换与C++版本无关,而只是编译器实现。警告绝对是特定于实现的,与C++无关。 所以不要误用你的发现 在这种特定的情况下,在这个特定的编译器上 做总结 关于C++的一般性 . |
![]() |
3
2
是的,这是完全可能的。
我从不使用C型铸造。我可以编写数十万行代码,而不必使用
你 不要 需要 也可以使用C型铸造。在你 other post 你说
所以在这种情况下,你不必使用石膏。你选择了。 |
![]() |
4
0
我是从另一个角度看的:你使用C样式的演员表 防止编译器警告您 我认为这是C型铸造的一个严重缺点。 如果你觉得你知道自己在做什么,那么就用一种编译器特有的方式关闭这个案例的编译器。例如,对于VC,使用
|
![]() |
5
0
有4种C++风格的铸件,StistaCube,RealType铸件,StistaCype和DyrimCype铸件。它们的工作原理如下:
C++中的C风格铸件只是试图按特定顺序执行这些铸件,直到其中一个工作。顺序如下:
因此,简而言之,您可以在C++中做任何C风格的转换,因为C++中的C风格的转换只是C++样式转换的一些安排。了解了? |
![]() |
6
-3
在这些情况下,您可以使用
|
![]() |
Community wiki · C中有哪些耗时的操作? 1 年前 |
![]() |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
![]() |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
![]() |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |