我想定义一个抽象基类,然后将该类型的数组(作为一个派生类的实例显然是完整的)作为函数参数传递,但编译器正在对我大喊大叫。有任何想法吗?如何通过抽象类型的数组作为函数参数?
例如(“可测试”是抽象的,“Vecteur”是混凝土):
void Testeur::commencerTest(Testable testables[], int nTestables, string titre) {
cout << "\n" << titre << "\n";
for (int i=0; i < nTestables; i++) {
testables[i].afficher();
}
}
// in main function:
Vecteur v1 = Vecteur(1,2,3);
Vecteur v2 = Vecteur(4,5,6);
Vecteur vecteurs[] = { v1, v2 };
int nVecteurs = 2;
this->commencerTest(vecteurs, nVecteurs, "Some text");
编译器在上面的代码中的第一行说invalid abstract type ‘std::Testable’ for ‘testables’
。
我该如何传递一个抽象类型的数组作为函数参数?
错误信息意味着你已经在'std'命名空间内定义了'Testable',这是不允许的... – 2012-04-25 11:49:59
你应该给我们定义Testable – 2012-04-25 11:50:43