gpt4 book ai didi

c++ - 如何转发声明 vector*(不是 vector 或 vector)?

转载 作者:行者123 更新时间:2023-11-28 00:09:24 24 4
gpt4 key购买 nike

我知道我们可以通过使用指针来隔离一个类,这样类的头就不需要在头中了,例如:

class B;
class A{
B* b;
};

它阻止了 A.h 中的#include "B.h"。现在我想阻止

#include <vector>

在标题中,所以我尝试复制语法,使用 vector 指针:

class std::vector<B*>;
class A{
std::vector<B*>* v;
};

但是编译失败,是否可以通过使用vector指针来防止include vector header?

最佳答案

您正在寻找:

#include <vector>

class B;
class A
{
std::vector<B *> *v;
};

不允许尝试为 namespace std; 的成员提供您自己的声明

如果您不希望标题包含 <vector>那么你不能使用任何涉及 vector 的类型在你的课上。你可以使用 pImpl相反。

关于c++ - 如何转发声明 vector<B*>*(不是 vector<B> 或 vector<B*>)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33884535/

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