3
This问题有点相关但仍不能解决我的问题。考虑两个类A和B:将对象的指针传递给构造函数中的另一个类
class A{
public:
A(int id, B* coordinator);
virtual ~A();
B *coordinator;
}
class B{
public:
B(int id, int param2);
virtual ~B();
run();
}
void b::run(){
while(true){
A(1, this);
A(2, this);
//something else create which may create more A
}
}
int main(int argc, char* argv[]) {
B bObj(atoi(argv[1]), atoi(argv[2]));
}
在主函数创建称为BOBJ B类类型的对象。 B调用run()和B.run()的构造函数进入无限循环。它创建了多个对象A. 现在我想将bObj的指针传递给类A的新创建对象,以便它们可以访问其他公共变量和bObj的函数。所以我通过这个指针,同时从B创建A的对象。并且我已经在类A中声明了B *类的类变量协调器。但是我得到这个:编译器错误 - >ISO C++禁止声明'B'没有类型。
请帮我这个。我对C++相当陌生。
感谢到底!我应该在哪里做这个声明? – PHcoDer
在类A的声明之上。查看我的回答中的代码段 – WhiZTiM
谢谢,我做到了。但是现在我得到了错误,我已经声明了类型A的变量。就像在B中有一个向量,它包含在B中创建的A的实例。当我创建向量 allAs ;.我的错误是“模板参数1无效”。我在A的构造函数初始化列表中初始化传递给A的B *。 – PHcoDer