Как передать абстрактный -типизированный массив в качестве параметра функции?

Я хотел бы определить абстрактный базовый класс, а затем передать массив этого типа (, явно полный экземпляров производного класса ), в качестве параметра функции, но компилятор кричит на меня. Любые идеи?

Например, («Testable» — абстрактно, «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’в первой строке приведенного выше кода.

Как передать абстрактный -типизированный массив в качестве параметра функции?

0
задан Paul Hiemstra 25 April 2012 в 12:54
поделиться