gpt4 book ai didi

c++ - 如何初始化对引用对象的引用是类成员?

转载 作者:太空狗 更新时间:2023-10-29 19:54:53 28 4
gpt4 key购买 nike

假设 Class 包含一个名为 matrix_ 的引用:

类.h

class Class
{
Matrix& matrix_;
}

类.cpp

Class::Class() : matrix_(Matrix())
{
}

我收到错误:无效初始化类型为‘Matrix&’的非常量引用 临时的“矩阵”类型。

我看到问题是临时对象会消失,引用会指向 NULL。如何为引用创建持久对象?我想使用引用,因为这个成员应该是常量。

最佳答案

Class::Class() : matrix_(Matrix()) 尝试将引用设置为指向临时对象,这是非法的。

好吧,有一个包含 const 引用和临时绑定(bind)的案例,但说真的,不要去那里。

看起来你只需要使用聚合:

class Class
{
const Matrix matrix_;
};

和初始化列表:

Class::Class() : matrix_() /* or any params to the constructor if you need them */
{
}

关于c++ - 如何初始化对引用对象的引用是类成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4187278/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com