引用类成员变量在构造函数 [duplicate] 中给出错误“未初始化的引用”

Reference class member variables give an error "uninitialized reference" in constructor [duplicate]

提问人: 提问时间:7/14/2022 最后编辑:πάντα ῥεῖ 更新时间:7/14/2022 访问量:135

问:

我有以下代码:

#include<iostream>
using namespace std;

class Vec{
    private:
        int& var;
    public:
        Vec(int& tmp){
            var = tmp;
        }
};
int main(){
    int x = 10;
    Vec v1(x);
}

但它给出了一个编译错误:error: uninitialized reference member in ‘int&’ [-fpermissive]

如何解决这个问题?

C++ 按引用传递

评论

0赞 anas16 7/14/2022
如果没有初始值设定项列表,则无法初始化类的引用变量。

答:

5赞 MikeCAT 7/14/2022 #1

应使用初始值设定项列表。

#include<iostream>
using namespace std;

class Vec{
    private:
        int& var;
    public:
        Vec(int& tmp) : var(tmp) {}
};
int main(){
    int x = 10;
    Vec v1(x);
}

评论

0赞 7/14/2022
我不确定初始值设定项列表是什么意思!有人可以解释这一点或指出一些好的资源吗?提前致谢!
0赞 Ben Voigt 7/14/2022
@AJ:你知道初始化和赋值的区别吗?