- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
class Pizza() { private: int value; public: Pizza(int x) { value = x; } } int main() { // What is the difference here under the hood? Pizza p1 = 2; Pizza p2(2); }
我问这个的原因是,如果我有一个接受字符串的 Pizza 构造函数,
Pizza p3 = "letters here"; Pizza p4("letters here");
带有 p3 的行产生类型转换错误。这是因为它希望采用的实际类型是 const char*。
带有 p4 的行工作正常。为什么“这里的字母”在( )中时,它是一个字符串对象,但是当“这里的字母”紧跟在=号之后时,它的类型是const char*。
最佳答案
我假设你有一个看起来像这样的构造函数。
Pizza(std::string x) {
...
}
你是这样调用它的。
Pizza p3 = "letters here";
Pizza p4("letters here");
Pizza p5 = Pizza("letters here");
p4
和 p5
都可以。我们使用 const char*
参数调用 Pizza
构造函数。我们需要一个 std::string
,并且有一个方便的从 const char*
到 std::string
的隐式转换,因此一切正常。 p3
不同;我们正在尝试将 convert const char*
为 Pizza
。我们有一个从 const char*
到 std::string
的转换,还有一个从 std::string
到 Pizza
的转换,但 C++ 编译器只会对每个参数进行一次隐式转换,因此它不需要我们到达那里所需的那两个跃点。
如果您仍然喜欢 p3
语法,有两种方法可以解决这个问题。
const char*
的构造函数,这将只需要一个隐式转换,因此一切都会被检查。如果我们想要相同的行为,构造函数甚至可以委托(delegate)给 std::string
版本。std::string
,如 Pizza p3 = std::string("letters here");
。同样,这只需要一次隐式转换,因此编译器会接受它。关于c++ - ClassName objectName(4); 有什么区别?和 ClassName objectName = 4;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55506001/
我正在尝试查找实践的名称(以任何语言),在该实践中,在执行查找之前检查对象是否存在。通常这是通过在对象和对象查找表达式之间添加 && 来完成的,就像在 JS 中一样: var example = ob
这个问题在这里已经有了答案: Why is 'this' a pointer and not a reference? (3 个答案) 关闭 8 年前。 Hello World,我一直想知道为什么在
我正在导入一个对象数组,例如从'./productData.js'导入productData。 其中 productData.js 看起来像: var productData = [{}, {}, .
class Pizza() { private: int value; public: Pizza(int x) {
我真的不知道如何问这个,所以如果听起来有点不对,请原谅我。 我在 Project.Data 命名空间中有一个 IPerson 接口(interface)、一个 Student : IPerson 类和
我正在尝试使用 Javascript 回调来嵌入我的页面中的 Flex 应用程序。通过一些示例,我看到了用于获取对 Flex 应用程序的引用的代码: // Get the reference: fun
我正在使用 jaxb2-marshaller 生成类以与网络服务通信。 Java 类是使用一些 wsdl 文件生成的。 现在一切正常,但是当我尝试使用一些生成的类时,我遇到了这个解码错误,尽管我使用了
在我的应用程序中,整个应用程序的样式表取自加载到应用程序中的资源文件。 我在那里为 QListWidget 定义了两个样式表: QListWidget#Good{ ..some color prope
标题中的简单问题 - 如果我在对象上调用 setObjectName(),它是否必须是唯一的,还是只是因为约定而推荐?我已经对 QLabel 进行了子类化,并希望自动为创建的对象命名;如果这是一个坏主
我使用 HTML Canvas 创建了一个项目,它运行良好。一开始是这样的: let canvas = document.querySelector('canvas'); canvas.width =
以下代码无法编译(“变量名称可能尚未初始化”): import javax.management.*; public class Main { public final static Obje
这个问题已经有答案了: Accessing an object property with a dynamically-computed name (19 个回答) jquery dynamic id
当您使用 Qt_Designer 或 Qt_Creator 设计表单时,任何给定小部件的 objectName 总是设置为某个值。但是,如果您在代码中创建了一个小部件并且稍后需要 objectName
类(class)org.springframework.validation.ObjectError有一个方法 getObjectName(),它返回“受影响对象的名称”。但这个名字是什么?类(cla
我正在以编程方式/动态方式创建原型(prototype) bean。我希望启动后的那些 bean 位于 jmx 控制台中。我如何区分它们?我正在使用注解来将我的 bean 添加到 jmx 中,并且我有
我有一个 excel 宏,它从另一张表的特定列中读取内容。我想在 WITH 语句中的工作表名称中使用一个变量,但在 For Each 行中不断收到错误消息“运行时出错,需要对象” 我已经搜索了如何在对
我在整个应用程序中一直使用 JS 模块化模式。这些模块如下所示: var moduleName = { prop1 : 'value1', prop2 : 'value2',
在实现 IDisposable 时,我知道在对象被释放后不应调用的每个方法都应抛出 ObjectDisposeException。但是应该传递给异常构造函数的名称对象的标准是什么? 最佳答案 我认为推
在 this code我在“main”方法之前看到以下几行: JTextArea displayArea; JTextField typingArea; 我想知道这些行的作用以及它们何时执行。据我所知
我刚刚第一次看到这个语言功能。这使您能够直接将值分配给名称保存在 MarkerDest 中的变量(也是“MarkerDest”)。到目前为止,我会这样做: markers[MarkerDest] =
我是一名优秀的程序员,十分优秀!