Ich habe zwei generische Klassen (Stack und Queue), Und wie die meisten Funktionsnamen von Stack (Assesume es die Basisklasse) kann verwendet, und ich würde für diese Funktionen in Stack und QueueMüssen die Basis-Klasse-Member-Funktionen in abgeleiteten Klasse in Generische Programmierung re-deklarieren
#ifndef STACK_H
#define STACK_H
template<class T>
class myStack{
private:
T *s;
int top,s_size;
public:
myStack(int k=40);
~myStack();
void push(T x);
T pop();
int isEmpty();
int isFull();
T peek();
void display();
};
#endif // STACK_H
und darunter ist die Warteschlange Klassenheaderdatei
#ifndef MYQUEUE_H
#define MYQUEUE_H
#include "stack.h"
template <class T>
class myQueue : public myStack<T>
{
private:
int f,r;
public:
void push(T x);
int isEmpty();
int isFull();
void display();
myQueue(int k=40);
T del();
T last();
T first();
virtual ~myQueue();
};
#endif // MYQUEUE_H
Sein eigener Logik offensichtlich, dass ich erklärt haben, die unten Funktionen wieder, ohne die mein Code kann nicht kompiliert werden, ist es wirklich notwendig, sie erneut zu deklarieren die abgeleitete Klasse eine separate Logik haben, oder kann ich nur diese Funktionen in abgeleiteten Klasse verwenden, ohne sie in Header mit, da die Funktionen bereits
int isEmpty();
int isFull();
void display();
Im Folgenden wird vererbt wird der Fehler aufgetreten ist, wenn ich sie nicht erklären erneut in abgeleiteten Klasse
||=== Build: Debug in Data_Structures (compiler: GNU GCC Compiler) ===|
C:\Users\xprk569\Data_Structures\src\myQueue.cpp|13|error: no 'void myQueue<T>::display()' member function declared in class 'myQueue<T>'|
C:\Users\xprk569\Data_Structures\src\myQueue.cpp|34|error: no 'void myQueue<T>::push(T)' member function declared in class 'myQueue<T>'|
C:\Users\xprk569\Data_Structures\src\myQueue.cpp|41|error: no 'int myQueue<T>::isEmpty()' member function declared in class 'myQueue<T>'|
C:\Users\xprk569\Data_Structures\src\myQueue.cpp|46|error: no 'int myQueue<T>::isFull()' member function declared in class 'myQueue<T>'|
||=== Build failed: 4 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Sie meinen, Sie sind neu zu definieren 'isEmpty' für' myQueue' ohne es in 'myQueue' zu erklären? – Holt
@holt ja, genau – user2256825