【发布时间】:2009-05-11 01:23:48
【问题描述】:
我正在做一项从小做起的课堂作业,所以我将所有内容都放在一个文件中。现在它变得更大了,我正在尝试分别编译 main、functions 和 classes(所以所有的类都在一个 .h 和一个 .cpp 中)我有一个类 B,它是很多其他类的父类,并且在文件中排在第一位。由于我正在使用单独的编译,它的一个数据成员现在无法正常工作,这会导致数十个错误。
在.h中
class A;
class B {
public:
B (){}
A* myptr;
void whatever();
vector<A*> myAs; //this one is the problem
};
在.cpp中
void B::whatever() {
vector<A*> newvector; //no problem!
myptr = &something; //no problem!
for (vector<A*>::iterator iter = myAs.begin(); iter != myAs.end(); ++iter) {
//error!
}
}
我收到错误:“myAs 未在此范围内声明”或“B 类没有成员 myAs”。
我已经包含了
【问题讨论】:
-
标头中声明 myAs 的代码行是否存在错误消息?还是只有一条与使用 myAs 的 CPP 文件中的代码行相关的错误消息?
-
顺便说一句,我强烈建议您将代码放入析构函数中,以删除 myAs 中 A* 指向的对象,否则会发生内存泄漏。
标签: c++ include compilation vector