- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
几乎是对 What's the difference between function(myVar) and (function)myVar? 的翻版
但我想知道:
这些变体的名称是什么?它们是“坏的”吗?
type(myVar)
是类似于构造函数的语法,但对于基本类型来说,它是否与执行 C 风格的转换一样,这在 C++ 中被认为是错误的?
(type)myVar
这看起来确实是 C 风格的转换,因此一定是不好的做法?
我见过一些例子,人们用 int(a)
替换 (int)a
之类的东西,理由是 C 风格的版本不好/错误,但链接的问题说他们都是一样的!
最佳答案
What is the name of these variants
type(expr)
被称为函数式转换。(type)(expr)
被称为 C 风格转换。and are they 'bad'?
Yes.首先,两者在语义上是完全等价的。它们是“坏的”,因为它们不安全——它们可能等同于一个static_cast
,但同样是一个reinterpret_cast
,并且不知道这两个类型
和 expr
的类型不可能说1。在某些情况下,它们还会忽略访问说明符(C 样式转换允许在私有(private)继承层次结构内进行转换)。此外,它们不像显式 C++ 样式转换那样冗长,这是一件坏事,因为转换通常意味着在 C++ 中脱颖而出。
1 考虑 int(x)
:根据 x
的类型,这可以是 static_cast
(例如 auto x = 4.2f;
) 或 reinterpret_cast
(例如 auto x = nullptr;
在 int
足够大以容纳指针)。
关于c++ - type(myVar) 和 (type)myVar 的名称是什么?他们都是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21841521/
我是 assembly 新手,我正在使用 MASM。我看到这些代码行,想知道这之间有什么区别 a) push myVar b) push [myVar] c) push OFFSET myVar 我怎
所以我正在制作一个关于沙漠幸存者的小游戏。幸存者在返回淘金鬼城的途中必须从遍布沙漠的水井里喝水。有些井可以饮用,但有些井却有毒。我在表中具有“well”类的 TD 元素上显示工具提示。在工具提示的初始
在编码网站和其他示例中,两者都在不同的示例中使用。如何正确使用它们以及它们如何影响 javascript 代码? var raj; 和 var raj = ""; 最佳答案 var raj; raj
...之间有什么区别 if(myVar.constructor == String) 和 if(typeof myVar == "string") 最佳答案 表达式 myVar.constructor
我正在浏览 cplusplus.com 上的完整教程,手动编码和编译每个示例。通常,我会偶然发现一些让我感到困惑的事情。 我目前正在学习这部分:http://www.cplusplus.com/doc
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Why does one often see “null != variable” instead of “
我在查看一些示例 C# 代码时,注意到一个示例将返回值包装在 () 中。 我总是刚刚完成: return myRV; 有区别吗: return (myRV); 最佳答案 更新:这个问题是 the su
我正在 cplusplus.com 上阅读完整的教程,手动编码和编译每个示例。我经常会偶然发现一些让我感到困惑的事情。 我目前正在学习这个部分:http://www.cplusplus.com/doc
我想我知道其中的区别,但不知道如何正确解释。 dealloc 立即完全删除该变量保留的内存。 release 将该变量内存的保留计数器递减 -1。如果它是1,那么它就是0,所以此时它与dealloc具
有什么区别 var myvar; 和 var myvar = null; ? 我刚刚在专业代码中看到了 next to next,想知道这是怎么回事... 最佳答案 一个创建 myvar(在当前范围内
几乎是对 What's the difference between function(myVar) and (function)myVar? 的翻版 但我想知道: 这些变体的名称是什么?它们是“坏的
我开发了一个小型 bmp 到 jpg 转换器。以下代码正在运行并提供我需要的准确结果 BOOLEAN convertBMPtoJPG(const WCHAR *src_bmp_path,const W
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Difference between using character pointers and charac
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Placement of the asterisk in Objective-C 我很困惑,将指针声明为 N
我正在学习 Ruby,我喜欢使用 irb 来发现新功能和技巧。今天我在玩变量和方法,因为我想知道哪个优先于另一个。在我尝试这个之前一切看起来都很好: def test puts "hello"
我一直在我的 JSP 代码中这样做: 今天我才第一次意识到我似乎也能使用这个较短的版本: ${myVar} 它在没有 的情况下工作! 也许这是因为我的页面是这样声明的: 所以,我的问题是,我可以
我这样声明我的 .h 文件: #import @interface NavigationTripViewController : UIViewController { NSArray *qu
我正在尝试阅读这段代码: var cloneKeys = Object.keys(base).filter(function ( k ) { return !~noCloneKeys.in
我不明白第一行;这条线有什么作用? phonebookEntry = {}; phonebookEntry.name = 'Oxnard Montalvo'; phonebookEntry.numbe
这个问题在这里已经有了答案: What is the !! (not not) operator in JavaScript? (42 个答案) 关闭 7 年前。 我可以澄清一下我为什么要使用它吗?
我是一名优秀的程序员,十分优秀!