gpt4 book ai didi

c++ - 如果它是成员变量,是否有可以包装成员指针的 boost 或 STL 类?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:01:01 24 4
gpt4 key购买 nike

我有两个类存在循环依赖问题:

  • A有一个B类的成员变量
  • B 是 vector<A> 的子类

我最初是这样解决的:

嗯:

#include "B.h"

class A
{
B b;
}

B.h:

class A;

class B : public vector<A>
{
}

#include "A.h"

不幸的是,如果在 Windows 上导出 A 和 B,MSVC 在构造 B 时会因为没有完整的 A 定义而窒息。

为了解决这个问题,我需要在 A 中存储一个指向 B 的指针。我想要一个包装器,类似于 boost::scoped_ptr,但它在其构造函数中创建了一个新对象,并且具有与它指向的对象。这将采用以下形式:

嗯:

class B;

class A
{
magic_ptr<B> b;
}

B.h:

#include "A.h"

class B : public vector<A>
{
}

在我重新发明轮子之前,有谁知道这是否已经存在于 STL 或 boost 中?

最佳答案

您尝试查找的是 boost::shared_ptr 吗?

关于c++ - 如果它是成员变量,是否有可以包装成员指针的 boost 或 STL 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6947538/

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