小编nin*_*pig的帖子

C++ shared_ptr无法从类类型中看到成员函数

我试图第一次使用共享指针,我遇到了一个问题,我无法从指针访问Element的成员函数.我已经看过网络上的例子了,似乎应该可以访问Element的功能,但我怀疑我在设置指针时做错了什么,但我无法解决问题.

如何从shared_ptr访问Element中的公共成员函数?(我正在使用Xcode 5.1.1)

#include <memory>    
#include <iostream>
class Element
{

private:
    std::string name;
    std::shared_ptr<Element> * firstChild;
    std::shared_ptr<Element> * lastChild;
    std::shared_ptr<Element> * nextSibling;

public:
    void addChild(std::shared_ptr<Element> * child)
    {
        if (lastChild != nullptr) {
            lastChild->setNextSibling(child); //Error: No member named 'setNextSibling' in 'std::__1::shared_ptr<Element>'
            lastChild = child;
        }
        else {
            firstChild = lastChild = child;
        }
    }

    void setNextSibling(std::shared_ptr<Element>* p)
    {
        nextSibling = p;
    }
};
Run Code Online (Sandbox Code Playgroud)

c++ class shared-ptr

1
推荐指数
1
解决办法
1842
查看次数

标签 统计

c++ ×1

class ×1

shared-ptr ×1