gpt4 book ai didi

c++ - 指针赋值

转载 作者:太空狗 更新时间:2023-10-29 22:53:33 26 4
gpt4 key购买 nike

我有以下模板结构:

template <typename scalar_type>
struct postc_params{
scalar_type delta;
unsigned int time_horizon;
matrix_math::matrix<scalar_type> dynamics;
boost::shared_ptr<continuous_set> invariant_set_ptr;
boost::shared_ptr<continuous_set> input_set_ptr;
boost::shared_ptr<continuous_set> initial_set_ptr;
};

现在,我有一个带有上述结构类型的私有(private)成员的模板化类

template <typename scalar_type>
class A{
....
private:
....
postc_params<scalar_type> my_postc;
};

在类 A 的成员函数定义中,我有以下代码行:

my_postc.initial_set_ptr = my_postc.initial_set_ptr->transform(some_obj);

转换函数返回一个类型的指针

boost::shared_ptr<continuous_set>

使用这段代码,我有以下错误:

传递 'const boost::shared_ptr' 作为 'boost::shared_ptr< >& boost::shared_ptr< >::operator= 的 'this' 参数 (const boost::shared_ptr&) [with Y = const continuous::continuous_set, T = continuous::continuous_set]' 丢弃限定词

谁能帮我解决这个问题?

最佳答案

是A中的成员函数const

如果我没看错你的代码,你正试图从不允许的 const 成员函数更改类的成员。要么删除 const从成员函数或创建成员 mutable .

所以,

mutable postc_params<scalar_type> my_postc;

不过,我会小心使用这种方法。也许重新评估为什么正在改变的方法 my_postcconst .要么它不应该是const或者它不应该改变 my_postc .

关于c++ - 指针赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1958700/

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