在我的头文件中,我想避免使用#include,但我的类将有一个向量或指向向量的指针。我只满足于一个指针,但我无法弄清楚如何声明它。我是否必须将其声明为无效*并始终投射?那将是蹩脚的。
// What do I type here to forward declare vector?
class Counters
{
Counters();
void inc(const char* s);
void print();
void clear();
private:
std::vector<int>* Counts;
int total;
};
请注意我只想要一个容器的指针存放在我的班级而不是容器中。指针的大小是已知的,无需引用容器的声明,因此请不要回答这是不可能的,因为编译器需要知道容器声明。
答案 0 :(得分:0)
也许这适用于您的情况:
//header
struct Container;
struct Foo{
Container *container;
};
//cpp
#include <vector>
struct Container : std::vector<int>{
};
int main(){
Foo foo;
foo.container = new Container;
foo.container->push_back(42);
}