为什么这个简单的 C++ 代码会出现段错误? [关闭]

2024-01-12

这里是a.h header:

#include <string>

template <typename L>
class A
{
    L l;

public:
    A() : l("a-text") {}
    const std::string get() const { l.get(); } // <<<< Edit: missing return!
};

这是a.cpp:

#include "a.h"
#include <iostream>

class L {
    const std::string v;

public:
    L(const std::string& v_): v(v_) {}
    const std::string get() const { return v; }
};

int main() {
    L l("l-text");
    std::cout << l.get().c_str() << std::endl;

    A<L> a;
    std::cout << a.get().c_str() << std::endl; // <<<< - this will report Segmentation fault

    return 0;
}

首先std::cout可以正常显示l-text然而第二个std::cout将报告分段错误而不是显示a-text.

提前致谢!


打开你的警告。你缺少一个return此处声明:

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

为什么这个简单的 C++ 代码会出现段错误? [关闭] 的相关文章

  • MEX 文件中的断言导致 Matlab 崩溃

    我正在使用mxAssert 宏定义为matrix h在我的 C 代码中 mex 可以完美编译 当我调用的 mex 代码中违反断言时 该断言不会导致我的程序崩溃 而是导致 Matlab 本身崩溃 我错过了什么吗 这是有意的行为吗 当我查看 M
  • 为什么基类必须有一个带有 0 个参数的构造函数?

    这不会编译 namespace Constructor0Args class Base public Base int x class Derived Base class Program static void Main string a
  • 使用实体框架从集合中删除项目

    我正在使用DDD 我有一个 Product 类 它是一个聚合根 public class Product IAggregateRoot public virtual ICollection
  • 有什么工具可以说明每种方法运行需要多长时间?

    我的程序的某些部分速度很慢 我想知道是否有我可以使用的工具 例如它可以告诉我可以运行 methodA 花了 100ms 等等 或者类似的有用信息 如果您使用的是 Visual Studio Team System 性能工具 中有一个内置分析
  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • 在 Xcode4 中使用 Boost

    有人设置 C Xcode4 项目来使用 Boost 吗 对于一个简单的 C 控制台应用程序 我需要在 Xcode 中设置哪些设置 Thanks 用这个来管理它 和这个
  • 在 C# 中将位从 ulong 复制到 long

    所以看来 NET 性能计数器类型 http msdn microsoft com en us library system diagnostics performancecounter aspx有一个恼人的问题 它暴露了long对于计数器
  • 是否有与 C++11 emplace/emplace_back 函数类似的 C# 函数?

    从 C 11 开始 可以写类似的东西 include
  • 单元测试失败,异常代码为 c0000005

    我正在尝试使用本机单元测试项目在 Visual Studios 2012 中创建单元测试 这是我的测试 TEST METHOD CalculationsRoundTests int result Calculations Round 1 0
  • 两组点之间的最佳匹配

    I ve got two lists of points let s call them L1 P1 x1 y1 Pn xn yn and L2 P 1 x 1 y 1 P n x n y n 我的任务是找到它们点之间的最佳匹配 以最小化它
  • std::bind 重载解析

    下面的代码工作正常 include
  • 如何排列表格中的项目 - MVC3 视图 (Index.cshtml)

    我想使用 ASP NET MVC3 显示特定类型食品样本中存在的不同类型维生素的含量 如何在我的视图 Index cshtml 中显示它 an example 这些是我的代码 table tr th th foreach var m in
  • 在 C 中复制两个相邻字节的最快方法是什么?

    好吧 让我们从最明显的解决方案开始 memcpy Ptr const char a b 2 调用库函数的开销相当大 编译器有时不会优化它 我不会依赖编译器优化 但即使 GCC 很聪明 如果我将程序移植到带有垃圾编译器的更奇特的平台上 我也不
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • 从匿名类型获取值

    我有一个方法如下 public void MyMethod object obj implement 我这样称呼它 MyMethod new myparam waoww 那么我该如何实施MyMethod 获取 myparam 值 Edit
  • 过期时自动重新填充缓存

    我当前缓存方法调用的结果 缓存代码遵循标准模式 如果存在 则使用缓存中的项目 否则计算结果 在返回之前将其缓存以供将来调用 我想保护客户端代码免受缓存未命中的影响 例如 当项目过期时 我正在考虑生成一个线程来等待缓存对象的生命周期 然后运行
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • 如何在 GCC 5 中处理双 ABI?

    我尝试了解如何克服 GCC 5 中引入的双重 ABI 的问题 但是 我没能做到 这是一个重现错误的非常简单的示例 我使用的GCC版本是5 2 如您所见 我的主要函数 在 main cpp 文件中 非常简单 main cpp include
  • 热重载时调用方法

    我正在使用 Visual Studio 2022 和 C 制作游戏 我想知道当您热重新加载应用程序 当它正在运行时 时是否可以触发一些代码 我基本上有 2 个名为 UnloadLevel 和 LoadLevel 的方法 我想在热重载时执行它
  • boost::program_options:带有固定和可变标记的参数?

    是否可以在 boost program options 中使用此类参数 program p1 123 p2 234 p3 345 p12 678 即 是否可以使用第一个标记指定参数名称 例如 p 后跟一个数字 是动态的吗 我想避免这种情况

随机推荐

  • 将字符串转换为数组 - PostgreSQL

    我在表中有一列存储用逗号分隔的名称 例如 Mel s Hou Rest Mel s Lad Rest 我需要的是将这个字符串转换为以逗号分隔的数组 我需要的查询是 SELECT home location subs state FROM c
  • 如果有焦点组件,则不会执行场景的 JavaFX 按键事件

    我有一段代码可以在按下某个键时执行某些功能 scene setOnKeyPressed event gt if event getCode KeyCode F1 doSomething 它可以工作 但前提是没有焦点组件 例如按钮或文本字段
  • RxJava doOnError 与 onError

    我尝试使用以下代码 initLocalSettingsIfNeed andThen initGlobalSettingsIfNeed configuration doOnComplete callback onSuccess doOnErr
  • Android应用程序图标随运行时变化

    在我的应用程序中 我想显示应用程序的不同图标 应根据场景进行更改 例如 它将标记任务完成的剩余天数 在 Android 菜单上 此图标将显示剩余天数 如果有人对此有任何想法 我将不胜感激 谢谢 实际上有很多方法可以实现这一目标 如果你最近注
  • 来自 SVN 存储库的 Maven 依赖项

    使用maven 2 有没有办法列出对另一个maven项目的依赖关系 该项目位于不同的SVN服务器上但不在maven存储库上 理想情况下 应该可以编译和运行主项目 而无需手动签出和构建依赖项 使用maven 2 有没有办法列出对另一个mave
  • 从存储过程批量复制

    我的数据库中有表 A B 和 C 我必须将A和B得到的结果放入表C中 目前 我有一个 SP 它将 A 和 B 的结果返回到 C 应用程序 该结果将使用 System Data SqlClient SqlBulkCopy 复制到表 C 中 优
  • 如何创建在 Visual Studio 中使用的新语言

    我想编写一种新的模板语言 并且希望 Visual Studio 支持 它 我需要知道的是 我如何解析我的新语言 给定我的新模板语言中的一些代码 如何将其转换为 HTML 现在我正在使用正则表达式逐个标记地解析它 但我认为随着语言变得更加复杂
  • 哈希表的查找时间总是 O(n) ?

    我不明白如果存储桶的数量恒定 那么哈希表如何进行恒定时间查找 假设我们有 100 个桶和 1 000 000 个元素 这显然是 O n 查找 这就是理解非常大的 n 值时事物的行为方式的复杂性所在 因此 哈希表永远不是常量查找 它始终是 O
  • 谷歌地图不显示

    我的 Google 地图无法显示 FF 和 Chrome 中的问题似乎是相同的 但 IE 中的问题更 糟糕 始终是最新版本 在 FF 和 Chrome 中我有一个问题position relative CSS 元素样式 一旦我切换到 使用开
  • TDD 时提取类。如何测试新提取的类?

    因此 我的主类中有几个方法使用矩阵来打开或关闭像素 我已经运行了所有当前的测试 所以我决定现在是时候提取一些与矩阵等相关的逻辑并创建一个 Matrix 类了 我的问题是 除了我目前对 SUT 类进行的测试 我才刚刚开始 所以我目前只有一个类
  • ffmpeg 复制以保留时间戳

    我正在尝试修改 HLS 段传输流 并使用 ffmpeg 保留其开始时间 但是 即使提到了 copyts 输出也不会保留输入文件的 start time 值 这是我的命令行 ffmpeg i fileSequence1 ts i x png
  • 如何将值与反斜杠进行比较?

    if message value 0 or message value 0 do stuff 我确信这是一个简单的语法错误 但是这个 if 语句有问题 当你只需要检查是否相等时 你也可以简单地使用in http docs python or
  • 从可观察数组中获取一个对象

    你如何编写一个需要一个函数Observable
  • vscode 括号对随 v1.67 改变颜色

    我正在尝试 Swagger for Go 但不知何故 在 Visual Studio Code 中它改变了颜色 在我安装 Swagger 之前 大括号和括号不是粉色 黄色或蓝色的 我已经尝试卸载 Swagger 和 Vscode 但这没有帮
  • 在 Node.js 中使用工作进程/后台进程与异步调用

    我想知道将数据库或其他异步调用传递给一个或多个工作进程是否有任何好处 具体来说 我正在使用 heroku 和 postgres 我已经阅读了有关 Node js 的大量内容 以及如何构建服务器 以便事件循环不会被阻塞 并且智能架构不会让传入
  • 无法从 App_code 文件夹中找到类型或命名空间

    我在项目的 App code 文件夹中编写了一个名为 ArchivedFilesWrapper 的类 但是当我在不同文件夹中的另一个文件中使用此类时 我收到错误 找不到类型或命名空间名称 ArchivedFilesWrapper 您是否缺少
  • AngularJS - “选择所有”当前可见的项目

    我目前正在尝试找出选择列表中当前可见的所有项目的最佳方法 目前 我的范围内有一个很大的项目列表 其中应用了分页 因此一次只能看到该列表中的几个项目 我有一个 全选 按钮 所需的行为是让它选择当前可见的所有项目 而不是列表中的所有项目 我想我
  • 编辑并继续功能在 Visual Studio 2010 中停止工作

    Visual Studio 编辑并继续功能在 Visual Studio 2010 上停止 我不知道是什么导致了该问题 我正在使用 C 开发 Windows 应用程序 该应用程序最初是在 Visual Studio 2008 中开发的 后来
  • 自动完成功能未检测到 eof()、bad()、good() 函数

    该代码块 include
  • 为什么这个简单的 C++ 代码会出现段错误? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 这里是a h header include