c++ - 从函数返回对象字段时出现分段错误
问题描述
当我从函数返回对象字段的左值或右值引用时,出现分段错误。谁能给我解释一下?我已经包含了我编写的代码。
int randomItem1(const vector<IntCell>& x) { // works fine
return x[0].read();
上面的代码工作正常。但是,以下代码给了我分段错误。
const int& randomItem2(const vector<IntCell>& x) { // segmentation fault
return x[0].read();
int&& randomItem3(const vector<IntCell>& x) { // segmentation fault
return x[0].read();
IntCell 类定义:
class IntCell {
private:
int storedValue;
public:
IntCell(int val):storedVal{val} {}
int read() const {
return storedVal;
}
};
编辑:我已经包含了 IntCell 的类定义。
解决方案
推荐阅读
- google-cloud-run - 如何在已部署的 Cloud Run Service(托管)中使用 Google Secret?
- docker - 为 gitea 设置 docker 容器中的卷
- javascript - 无法在 js react-native 中设置状态
- c# - ASP.net Core Razor 页面中的登录模式
- java - 找不到适用于 SQL Server 的 JDBC 驱动程序
- ios - 有没有办法在公共容器中使用 iCloud KeyValue Storage?
- reactjs - 用临时对象设置钩子
- reactjs - Flowtype 在 React+Webpack 设置中给出 SCSS 文件错误
- homebrew - Cask 'thorn-writing' 定义是我没有安装的无效错误
- spring-boot - 如何将公共证书添加到谷歌存储桶