【发布时间】:2019-08-01 15:00:23
【问题描述】:
这是我的函数定义
void subscribe(std::shared_ptr<StrategyOrderEvents &> &strategy)
{
auto p=make_pair(strategy.get()->m_StrategyName,strategy);
}
但是当我尝试做strategy.get() 时,我收到以下错误:
‘class std::shared_ptr’没有名为的成员 ‘得到’
在StrategyOrderEvents 类中,我有一个数据成员名称,我不会提取它
*编辑通知 get()->get() 是我尝试将其修复为 strategy.get()->m_StrategyName
【问题讨论】:
-
我在我的代码中使用 std::shred_ptr
-
鉴于您显示的代码,此错误没有意义。您应该使用
strategy.get(),而不是strategy->get()来访问原始指针。但是你无论如何都不想要原始指针,所以不要做任何.get(),只是strategy->m_StrategyName......而且->get()->get()也是无意义的。请确保您显示的错误可以与您显示的代码一起重现,以便我们给您一个连贯的答案。 -
@MaxLanghof 我编辑了代码,这是一个尝试,当我做'strategy->m_StrategyName'时,我得到“'->'的基本操作数具有非指针类型'std::shared_ptr'" auto p = std::make_pair(strategy->m_StrategyName,strategy);'
-
你为什么要写这样的代码?你想做什么?
标签: c++ c++14 shared-ptr