- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在 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)
上课和(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/3484371/
我是 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 年前。 我可以澄清一下我为什么要使用它吗?
我是一名优秀的程序员,十分优秀!