与Regular cast vs. static_cast vs. dynamic_cast相关的问题:
你更喜欢C++中的演员语法风格?
(int)foostatic_cast<int>(foo)int(foo)它们可能无法转换为完全相同的指令(是吗?)但它们的效果应该相同(对吗?).
如果你只是在内置数值类型之间进行转换,我发现C++风格的转换语法太冗长了.作为以前的Java编码器,我倾向于使用C风格的转换语法,但我的本地C++专家坚持使用构造函数语法.
你怎么看?
我说的是"类型(值)" - 样式演员.我读过的书很快就传递过来,只说它们在语义上等同于C风格的演员表,"(类型)值",并且应该避免它们.如果他们的意思与旧式演员的意思相同,他们为什么要加入这种语言呢?此外,因为声明可以包含多余的括号,所以此代码为:"T x(T(y));" 没有人打算使用函数式演员所期望的; 它声明了一个名为x的函数,它接受一个T并返回一个T而不是通过将y转换为T来构造一个名为x的T变量.
他们在语言设计上是个错误吗?
我想我对语法有点困惑.以下是什么意思?
typedef char *PChar;
hopeItWorks = PChar( 0x00ff0000 );
Run Code Online (Sandbox Code Playgroud)