Je crée une nouvelle classe qui hérite de la file d'attente de la bibliothèque STL. Le seul ajout à la classe est un vecteur. Ce vecteur aura la même taille de la file d'attente et il stockera des valeurs entières qui correspondront à chaque objet de la file d'attente.C++ Appel de méthode de classe parent
Maintenant, je veux remplacer pop() et push(), mais je veux simplement ajouter plus de fonctionnalités aux méthodes de classe du parent.
ex. Quand pop() est appelé sur l'objet queue, je veux aussi faire apparaître un objet du vecteur. Quand push() est appelé sur l'objet queue, je veux aussi insérer un nouvel objet dans le vecteur.
Comment je fais ça ???
#include <iostream>
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
template <typename type>
class CPU_Q : public queue<type>
{
public:
vector<int> CPU_TIME;
void increaseTime()
{
for(int ndx = 0; ndx < CPU_TIME.size(); ndx++)
{
CPU_TIME[ndx]++;
}
}
void push(type insertMe)
{
//This is what I want to do
super::push(); // or queue::push(); maybe?
CPU_TIME.push_back(0);
}
void pop()
{
//Something very similar to push()
}
}
Un grand merci à l'avance
-Tri
La raison de C++ ne pas avoir un mot-clé 'super' est probablement en C++ il y a l'héritage multiple.Vous pouvez avoir plusieurs classes de base/super. Donc, vous utilisez le type correct de la classe de base à la place: 'queue :: push (insertMe)'. Cependant, assurez-vous de lire les réponses expliquant pourquoi l'héritage des conteneurs STL ne correspond probablement pas à ce que vous voulez. –
sbi
Avez-vous également considéré simple de mettre ces valeurs dans une structure de leur propre, de sorte que vous pouvez toujours garantir que les valeurs connexes sont ajoutées et supprimées ensemble? – UncleBens