为什么匿名对象有时需要默认构造函数?

2023-12-15

如果我编写以下程序,它会按我的预期工作:

struct Foo {
    Foo (std::string x) { std::cout << x << std::endl; }
};

int main () { Foo("hello, world"); }

但是,如果我编写一个稍微不同的程序,则会出现编译错误:

struct Foo {
    Foo (std::string x) { std::cout << x << std::endl; }
};

std::string x("hello, world");

int main () { Foo(x); }

错误是:

prog.cc: In function 'int main()':
prog.cc:10:20: error: no matching function for call to 'Foo::Foo()'

在IDEONE上可以看到完整的错误。

为什么第二个程序会出现错误,而不是第一个程序会出现错误?


你已经声明了一个变量x与类型Foo

struct Foo {
    Foo(){}
    Foo (std::string x) { std::cout << x << std::endl; }
    void test(){ std::cout << "test" << std::endl; };
};

std::string x("hello, world");

int main () { Foo(x); x.test(); }

打印“测试”


你想要的是使用统一的初始化语法Foo{x}

struct Foo {
    Foo (std::string x) { std::cout << x << std::endl; }
};

std::string x("hello, world");

int main () { Foo{x}; }

打印“你好,世界”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么匿名对象有时需要默认构造函数? 的相关文章

  • 格式说明符%02x

    我有一个简单的程序 include
  • C# 中的 Stack<> 实现

    我最近一直在实现递归目录搜索实现 并且使用堆栈来跟踪路径元素 当我使用 string Join 连接路径元素时 我发现它们被颠倒了 当我调试该方法时 我查看了堆栈 发现堆栈内部数组中的元素本身是相反的 即最近 Push 的元素位于内部数组的
  • strlen() 编译时优化

    前几天我发现你可以找到编译时strlen使用这样的东西 template
  • Selenium - C# - Webdriver - 无法找到元素

    在 C 中使用 selenium 我试图打开浏览器 导航到 Google 并找到文本搜索字段 我尝试下面的 IWebDriver driver new InternetExplorerDriver C driver Navigate GoT
  • 如何修复错误:“检测到无法访问的代码”

    我有以下代码 private string GetAnswer private int CountLeapYears DateTime startDate return count String answer GetAnswer Respo
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • 为什么这个 makefile 在“make clean”上执行目标

    这是我当前的 makefile CXX g CXXFLAGS Wall O3 LDFLAGS TARGET testcpp SRCS main cpp object cpp foo cpp OBJS SRCS cpp o DEPS SRCS
  • wordexp 失败时我们需要调用 wordfree 吗?

    wordexp 失败时我们需要调用 wordfree 吗 在某些情况下 调用 wordfree 似乎会出现段错误 例如 当 wordfree 返回字符串为 foo bar 的错误代码时 这在手册页中并不清楚 我已经看到在某些错误情况下使用了
  • 如何在 Javascript 中连接 C# ActiveX 事件处理程序

    我尝试使用几个代码片段将 ActiveX 对象与 Javascript 事件处理程序挂钩 我无法确定为什么事件处理程序没有被调用 带有项目的 Github 存储库 https github com JesseKPhillips Csharp
  • 如何防止 Blazor NavLink 组件的默认导航

    从 Blazor 3 1 Preview 2 开始 应该可以防止默认导航行为 https devblogs microsoft com aspnet asp net core updates in net core 3 1 preview
  • 对于 C# Express 用户来说,有哪些好的工具可以识别可能重复的代码? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 也可以看看 有什么工具可以检查重复的 VB NET 代码吗 https stackoverflow c
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h
  • 当Model和ViewModel一模一样的时候怎么办?

    我想知道什么是最佳实践 我被告知要始终创建 ViewModel 并且永远不要使用核心模型类将数据传递到视图 这就说得通了 让我把事情分开 但什么是Model 和ViewModel一模一样 我应该重新创建另一个类还是只是使用它 我觉得我应该重
  • Xamarin Forms Binding - 访问父属性

    我无法访问页面的 ViewModel 属性以便将其绑定到 IsVisible 属性 如果我不设置 BindingContext 我只能绑定它 有没有办法可以在设置 BindingContext 的同时访问页面的 viewmodel root
  • C++ 指针引用混淆

    struct leaf int data leaf l leaf r struct leaf p void tree findparent int n int found leaf parent 这是 BST 的一段代码 我想问一下 为什么
  • 构建 C# MVC 5 站点时项目之间的处理器架构不匹配

    我收到的错误如下 2017 年 4 月 20 日构建 13 23 38 C Windows Microsoft NET Framework v4 0 30319 Microsoft Common targets 1605 5 警告 MSB3
  • 在 C# 的 WebAPI 中的 ApiController 上使用“传输编码:分块”提供数据

    我需要服务分块传输使用编码数据API控制器 因为我无权访问HttpContext or the Http请求 我有点不知道在哪里写入响应以及在哪里刷新它 设置如下 public class MyController ApiControlle
  • 如何从 Windows Phone 7 模拟器获取数据

    我有一个 WP7 的单元测试框架 它在手机上运行 结果相当难以阅读 因此我将它们写入 XDocument 我的问题是 如何才能将这个 XML 文件从手机上移到我的桌面上 以便我可以实际分析结果 到目前为止 我所做的是将 Debugger B
  • 如何获取带有某个属性注释的所有属性?

    我刚刚从 Roslyn 开始 我想找到所有用属性名称 OneToOne 注释的属性 我启动了 SyntaxVisualizer 并能够获取对该节点的引用 但我想知道是否有更简单的方法来实现此目的 这就是我所拥有的 var prop docu
  • ContentDialog Windows 10 Mobile XAML - 全屏 - 填充

    我在项目中放置了一个 ContentDialog 用于 Windows 10 上的登录弹出窗口 当我在移动设备上运行此项目时 ContentDialog 未全屏显示 并且该元素周围有最小的填充 在键盘上可见 例如在焦点元素文本框上 键盘和内

随机推荐

  • 为什么在 ARM 汇编中使用 LDR 而不是 MOV(反之亦然)?

    我正在浏览这个教程 http www cl cam ac uk freshers raspberrypi tutorials os ok01 html 第一道装配线是 ldr r0 0x20200000 第二个是 mov r1 1 我想ld
  • Matplotlib 颜色条移动第二个 x 轴

    我正在尝试使用以下命令将第二个 x 轴添加到绘图的顶部twiny 如果我制作一个没有颜色条的简单散点图 则顶部 x 轴与底部 x 轴正确对齐 MWE 如下 如果我添加一个颜色条 顶部的 x 轴就会发生位移 我怎样才能解决这个问题 MWE i
  • WP7.1应用程序中的WebClient仅调用一次

    我的问题是 我的WebClient使用云中的功能 http 127 0 0 1 81 Service1 svc Data 但不可能多次调用 例如进行更新 这是我的代码 private void button Click object sen
  • 使用 NumberFormatter 类在 php 中将数字转换为单词

    我在解决 php 中的数字到单词函数时遇到困难 我怎样才能将其格式化为 二十九和二十九 请帮忙 首先 29 29 应该怎么读Twenty nine point two nine 话虽如此 如果你需要准确地得到Twenty nine and
  • 如何使用比根更深的 PHP DOM 将新元素添加到 XML?

    我可以在网上找到的所有有关此问题的示例都涉及简单地将内容添加到文档根目录下的 XML 文件中 但我确实需要做的比这更深入 我的 XML 文件很简单 我有
  • 如何处理来自搜索管理器的回调?

    我们假设以下情况 Activity A calls Search Manager User searches and search results are displayed in Activity B User clicks on a l
  • WCF 服务连接问题 - 也许是安全问题?

    我正在尝试调试 WCF 服务 这个客户端以前是可以连接的 现在却无法连接了 该服务被部署到服务器上 我可以使用浏览器访问服务器的服务页面 然后看到生成客户端的说明 我使用 svcutil 重新生成了客户端代理和配置文件 客户端启动 但对服务
  • 删除 VBA 项目引用

    在 VBA 中 我可以看到 PDFCreator 的三个不同参考 其中之一 参见第二张图片 是本地存储的软件版本 并且可以运行 我想使用这个参考 另外两个是对服务器上存储的版本的引用 它们已损坏 现阶段 我无权重新安装或删除它们 我的问题是
  • 如何在 C# 中迭代​​类的实例?

    有没有办法在 C 中迭代 类的实例 这些实例不在集合中进行跟踪或管理 不在常规框架内 你会need手动跟踪它们 但是 您可以在 Windbg sos 中执行此操作 主要用于调试目的 不适用于例程代码
  • 使用 UIActivityViewController 提供缩略图

    我正在尝试通过以下方式分享带有文本的图像UIActivityViewController 如果我这样做 let activityVC UIActivityViewController activityItems text image app
  • 如何将 scrapy json 行修复到多个 json 文件

    我创建了一个 scrapy 爬虫 将单个项目导出到名为的文件夹中 但我从爬虫中获得了 58 个项目 但没有获得 58 个文件 我们刚刚找到 50 个文件 目前 我使用的是 windows 10 和 python 3 coding utf 8
  • W/IMediaDeathNotifier:媒体服务器死亡

    我正在尝试使用 Google Glass MIC 录制音频 但我不断收到W IMediaDeathNotifier 媒体服务器死亡错误 想法 它应该在第一次触摸时开始录制 并在第二次触摸时停止 但在第一次单击时发生错误 package co
  • 对于每个循环:我们可以填充一个数组吗?

    我可以使用以下语法从数组中读取数据 int a new int 100 for int i 0 i lt 100 i a i i for int element a System out println element 但是否可以同样填充数
  • 如何在 pygame 音乐中播放歌曲一段设定的时间或直到按下按钮?

    我正在使用 pygame 音乐来播放 mp3 一段特定的时间 但是 如何在时间到之前使用按钮来停止 淡出歌曲 我尝试过睡眠 并短循环睡眠 但它没有检测到按钮按下 只需致电pygame mixer music stop当按钮被按下时 if b
  • 键盘将文本字段推离屏幕

    我一直在处理 Flutter 中的一个奇怪的情况 我就是无法弄清楚 问题是 当我尝试在任何类型的可滚动小部件中使用任何类型的文本字段时 当我点击键盘的文本字段时 键盘会将文本字段推离屏幕 脚手架中的所有内容都是空白的 我不能确切地说发生了什
  • 在 Swift 中如何在 GCD 主线程上调用带参数的方法?

    在我的应用程序中 我有一个函数可以创建 NSRURLSession 并使用以下命令发送 NSURLRequest sesh dataTaskWithRequest req completionHandler data response er
  • Excel VBA - 将日期字符串转换为日期

    我的单元格中有许多字符串 它们是日期 但需要将它们转换为日期格式 它们的格式如下 mmm dd yyyy 例如 Feb 10 2016 所以它们的长度可以是 11 或 12 Feb 1 2016 我已经开始编写一个函数来单独解析字符串的每个
  • 遵循 Django 教程时出现“导入错误:没有名为 urls 的模块”

    我正在关注 django 官方教程https docs djangoproject com en 1 10 intro tutorial04 我正在使用 Django 1 9 8 现在出现以下错误 polls views py File C
  • 使用 Sequelize 将对象传递到钩子中

    我正在使用 Sequelize 作为我的节点应用程序的数据库 SQL Server 交互工具 我想创建一个在表有更新 交互时运行的钩子 为了解决这个问题 我将将此表称为 用户 我选择使用的钩子是 Sequelize 的 afterBulkU
  • 为什么匿名对象有时需要默认构造函数?

    如果我编写以下程序 它会按我的预期工作 struct Foo Foo std string x std cout lt lt x lt lt std endl int main Foo hello world 但是 如果我编写一个稍微不同的