gpt4 book ai didi

c++ - 如何获取 boost::shared_ptr 类型的结构元素

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:46:23 26 4
gpt4 key购买 nike

我有一个这样的结构

struct Observation
{
observation_id id;
ObsVector z;
ObsMatrix R;
double confidence;

typedef boost::shared_ptr<Observation> Ptr;
typedef boost::shared_ptr<const Observation> ConstPtr;
};

所以我有一个文件 EFK.h,我需要一个 struct Observation

 class EFK
{
public:
Observation::Ptr observer (new Observation);
/// Something else
}

所以在 EFK.cpp 文件中我想使用结构体的一些变量

void EFK::update (ObsVector input, ObsVector delta)
{
/// Some stuff
input.z = observer->z -delta.z;
}

但是当我编译时我得到了这个

*error: invalid use of member function (did you forget the ‘()’ ?)
input.z = observer->z - delta.z;*
^

我也不知道为什么。这与 boos::shared_ptr 有关系吗?

谢谢

最佳答案

如果你想为属性observer设置默认值,写:

class EFK
{
public:
Observation::Ptr observer = new Observation;
/// Something else
};

或者:

class EFK
{
public:
EFK() : observer(new Observation)
{}

Observation::Ptr observer;
/// Something else
};

Type name(...) 的语法是函数声明的一种。

关于c++ - 如何获取 boost::shared_ptr 类型的结构元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37557171/

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