2017-10-19 4 views
0

ich ein Smart-Pointer-Projekt für das Selbststudium ähnlich wie https://www.codeproject.com/Articles/15351/Implementing-a-simple-smart-pointer-in-c erstellt ich nicht std::shared_ptr verwenden wollte und ich wollte nicht weak_ptr oder unique_ptrC++ Klasse Hinzufügen zu Namespace neue Klasse zu erstellen Objekt

Mini-Version von Projekt verwenden http://cpp.sh/957bl

Jetzt möchte ich das Projekt erweitern und erstellen Sie eine interface, die Objekte und eine Kopierfunktion macht. Das ursprüngliche Projekt enthält einen Kopierkonstruktor und einen regulären Konstruktor.

Was ich wissen möchte, ist, wie die Kopierfunktion und die Make-Funktion zu erstellen.

Fehler im bekommen:

Error C3861 'makeShared': identifier not found main.cpp 22 
Error C3861 'copyShared': identifier not found main.cpp 12 
Error C2653 'TestAllocator': is not a class or namespace name PointerInterface.hpp 35 
+0

Und wo sind diese Funktionen deklariert oder definiert? Anscheinend nicht in irgendeiner der Header-Dateien, die Sie einschließen (und Sie zeigen uns keine von beiden). –

+0

Auf eine andere Anmerkung, * warum * wollen Sie nicht die Standard-Smart-Pointer verwenden? Ist es nur zu Lernzwecken, oder gibt es ein anderes zugrunde liegendes Problem, das Sie lösen möchten? Wenn es ein zugrunde liegendes Problem ist, dann sollten Sie vielleicht nach * dem * fragen, anstatt zu versuchen, das Rad neu zu erfinden (ziemlich schlecht, würde ich argumentieren). –

+1

@Someprogrammerdude OP schrieb "zum Selbststudium" – klutt

Antwort

0

Eine Sache, die Sie, wenn sie von nicht zu sehen, verärgert tun wollen, warum Erklärungen fehlen für die Datei am Präprozessorausgabe zu suchen ist kompiliert wird. Es sollte in einem Menü in den meisten C++ - IDEs oder über ein Befehlszeilenflag verfügbar sein. Die Ausgabe ist oft übermäßig lang, aber es zeigt Ihnen eindeutig die Eingabe an den Compiler.

Verwandte Themen