首页 > 解决方案 > 从函数返回对象字段时出现分段错误

问题描述

当我从函数返回对象字段的左值或右值引用时,出现分段错误。谁能给我解释一下?我已经包含了我编写的代码。

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 的类定义。

标签: c++segmentation-faultrvalue-referencelvalue

解决方案


推荐阅读