Ich habe Antworten in anderen Themen auf Stack Overflow dafür gesehen, aber ich bin nicht sicher, was in meinem Fall zu tun ist. Ich bin brandneue Vorlagen und das ist die erste Vorlage, die ich/jemals/mit Beispielen gefunden habe, wieder von dieser Website. Wie auch immer, hier ist der Code unten und die damit verbundenen Fehler:Basisklasse sollte im Kopierkonstruktor explizit initialisiert werden
warning: base class 'class std::allocator<char>' should be explicitly initialized in the copy constructor [-Wextra] SecureString(const SecureString &) throw() {}
template<class T> class SecureString : public std::allocator<T> {
public:
template<class U> struct rebind { typedef SecureString<U> other; };
SecureString() throw() {}
SecureString(const SecureString &) throw() {}
template <class U> SecureString(const SecureString<U>&) throw() {}
void deallocate(T *p, size_t n) {
#ifdef _WIN32
SecureZeroMemory((void *)p, n);
#elif __linux__
std::fill_n((volatile char *)p, (n * sizeof(T)), 0);
#endif
std::allocator<T>::deallocate(p, n);
}
};
Es gibt mehr Fehler, aber das ist das wichtigste. Ich lerne am besten von Beispielen, so würde jede Hilfe sehr geschätzt werden, danke.
Danke, habe ich tatsächlich die 'std :: allocator (das)' gestern, aber ich war nicht sicher, warum es den Fehler behoben, bis jetzt . Der Link ist auch hilfreich :) –