Für den folgenden Code:C++ Templates Ausgabe
#include <map>
#include <iostream>
#include <string>
using namespace std;
template <class T>
class Foo{
public:
map<int, T> reg;
map<int, T>::iterator itr;
void add(T str, int num) {
reg[num] = str;
}
void print() {
for(itr = reg.begin(); itr != reg.end(); itr++) {
cout << itr->first << " has a relationship with: ";
cout << itr->second << endl;
}
}
};
int main() {
Foo foo;
Foo foo2;
foo.add("bob", 10);
foo2.add(13,10);
foo.print();
return 0;
}
ich den Fehler:
type std::map<int, T, std::less<int>, std::allocator<std::pair<const int, T> > > is not derived from type Foo<T>
Ich habe noch nie C++ Templates verwendet - Was bedeutet das?
+1 für einschließlich der Fehlermeldung. Das nächste Mal geben Sie an, auf welcher Zeile es steht (ein Kommentar im Quellcode ist eine gute Möglichkeit, dies zu erreichen). –