Je suis en train de créer une classe de base abstraite que j'ai l'intention les classes dérivées d'implémenter un membre vector<int>
. Mon problème est que si je tente de le faire:Classe de base avec un vecteur <int> member
class BaseClass
{
public:
virtual int GetCount() = 0;
virtual vector<int> ChildData;
}
class CID1 : public BaseClass
{
public:
int GetCount()
{
return 3;
}
//and so on.....
}
Je reçois
- « virtuelle » interdit sur les déclarations de données
- « virtuel » est pas autorisée.
Ce que je suis en train de faire est:
- faire mes classes d'enfants remplacent le vecteur parce qu'ils contiennent un nombre différent des éléments vectoriels
- Pour pouvoir faire une boucle à travers un réseau de
BaseClass*
contenant les adresses des classes enfants déclarées, et la deuxième boucle pour les données des vecteurs.
Est-ce que je le fais de la bonne façon? Merci d'avance!
Remarque: Je n'ai aucune expérience antérieure dans le codage en C++.
Les données de membre ne peuvent pas être virtuelles ou remplacées car elles sont des données. De plus, 'vector' est déjà redimensionnable à l'exécution. –