- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在浏览 cplusplus.com 上的完整教程,手动编码和编译每个示例。通常,我会偶然发现一些让我感到困惑的事情。
我目前正在学习这部分:http://www.cplusplus.com/doc/tutorial/structures/ .仅阅读教程很容易忽略一些细微之处。手动输入所有内容的优势在于这些细节确实很突出。
在上面的页面中,有两个示例程序。一个有这一行:
stringstream(mystr) >> yours.year;
另一个有这一行:
(stringstream) mystr >> pmovie->year;
我不明白的是 type (myVar) = x;
和 (type) myVar = x;
之间的区别(如果有的话)。
我没有按顺序完成整个教程。我查了一下,但没有在任何地方找到这个地址,尽管我可能错过了。
最佳答案
type(x)
之间没有区别和 (type)x
.这两个是完全等价的。大多数人更喜欢 type(x)
用于类(class)和(type)x
对于非类类型,但这完全取决于自己的选择。两者都为具有一个参数的类调用构造函数 x
.
类的首选方式是 type(x)
, 因为这允许将多个参数传递给构造函数,如 type(x, y)
.尝试申请其他表格,(type)x, y
不会工作:它转换 x
, 然后应用逗号运算符并计算 y
隔离中。括号如 (type)(x, y)
没有帮助:这将评估 x
和 y
使用逗号运算符隔离,然后转换 y
至 type
.
对于非类类型,这样的转换往往过于强大。 C++ 有 static_cast<type>(x)
粗略地进行隐式转换的反向操作(例如将基类转换为派生类并将 void*
转换为另一个指针),这通常是合适的。参见 When should static_cast, dynamic_cast and reinterpret_cast be used? .
stringstream
但是,它不是一个函数。做function(x)
将调用它的功能,但做 (function)x
是非法的,因为两个表达式彼此相邻,中间没有运算符。
对于那些不相信这个答案并凭直觉投反对票的人,请引用标准 5.2.3/1
A simple-type-specifier (7.1.5) followed by a parenthesized expression-list constructs a value of the specified type given the expression list. If the expression list is a single expression, the type conversion expression is equivalent (in definedness, and if defined in meaning) to the corresponding cast expression (5.4).
关于c++ - type(myVar) 和 (type)myVar 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49644035/
我是 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 年前。 我可以澄清一下我为什么要使用它吗?
我是一名优秀的程序员,十分优秀!