C++ shared_ptr 从类类型中看不到成员函数
C++ shared_ptr can't see member function from class type
我第一次尝试使用共享指针,我遇到了一个问题,我无法从指针访问元素的成员函数。我在网上看了一些例子,似乎应该可以访问元素的函数,但我怀疑我在设置指针时做错了什么,但我不知道是什么。
如何从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;
}
};
您正在使用指针指向共享指针。这说不通啊。
std::shared_ptr<Element>*
替换为std::shared_ptr<Element>
就可以了。
相关文章:
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 我不断收到 [错误] ID 返回 1 退出状态错误,但看不到问题所在
- 看不到文件'SDL2.lib'
- WSL 看不到环境变量
- 为什么我的 FreeRTOS 任务看不到类成员?
- Google Colab 看不到 .so 文件
- 派生类看不到基类成员
- 为什么我看不到字符串?
- CMake 看不到SDL2_PATH环境变量 (Windows)
- OpenMP 任务看不到共享变量的更改
- handleMessage看不到我的类和函数
- 为什么 connect() 函数看不到插槽?
- 模板类看不到继承的模板成员
- 友元函数看不到私有成员变量
- 派生类模板看不到基类的成员
- 为什么我的C++代码看不到这个 C# 类成员?
- 为什么 Visual Studio 2010 调试器看不到静态 const 类成员?
- 好友功能看不到私人成员
- 为什么decltype看不到成员声明
- c++模板继承看不到基类成员