gpt4 book ai didi

c++ - 将引用变量初始化为类成员

转载 作者:太空宇宙 更新时间:2023-11-04 15:26:14 24 4
gpt4 key购买 nike

我正在尝试将一个函数从我正在使用的相机 SDK 转换为一个类,这样我就可以分别调用该函数的不同部分(初始化、捕获图像、清理)。我遇到的一个问题是函数中的一些变量定义为:

type& var = type::init();

这在我这样做时不起作用:

class myClass
{
private:
type& var;
};

我尝试过改变:

type& var;

收件人:

type* var;

当我将所有内容都放在一个函数中时,它工作得很好,但是当我试图将它分解成一个类中的单独函数时,代码编译但不运行。我的代码是否存在根本性错误?

编辑:代码来自Basler的SDK,原代码为:

Pylon::CTlFactory& TlFactory = Pylon::CTlFactory::GetInstance();

在头文件中:

Pylon::CTlFactory *TlFactory;

和cpp文件:

TlFactory = &Pylon::CTlFactory::GetInstance();

如前所述,当所有代码都在一个函数中时,它编译并运行良好,只有当我将它分解为类函数时才会出现问题...

最佳答案

引用不可赋值。当你有一个作为类成员对象的引用时,你需要在构造函数中初始化它。为此,您使用构造函数初始化列表:

class myClass
{
public:
myClass( type& some_var )
: var( some_var )
{}

private:
type& var;
};

关于c++ - 将引用变量初始化为类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7719373/

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