include cpp in header

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

include cpp in header
Kann mir jemand mit mehr Ahnung von C++ sagen, was fuer einen Sinn in der [m]matrix.h[/m] von Blatt 1 am Ende die Anweisung

#include "matrix.cpp"

hat?


http://stackoverflow.com/questions/9253786/include-cpp-instead-of-header-h


Naja, das liegt einfach an der Verwendung von Templates in der Aufgabe. Man muss alle Template-Methoden direkt im Header definieren, damit der Compiler an anderer Stelle (z.B. in der main.cpp) dann den korrekten Code (z.B. [m]Matrix[/m]) erzeugen kann. Man kann ja keinen Code von [m]Matrix[/m] erzeugen, wenn gar nicht klar ist, was [m]T[/m] überhaupt ist.
Damit man trotzdem eine Art Aufteilung in Deklaration/Definition hat, kann man einfach am Ende der .h die .cpp-Datei includen.

Hier ist das ganze noch etwas ausführlicher erklärt: http://www.codeproject.com/Articles/48575/How-to-define-a-template-class-in-a-h-file-and-imp oder http://www.daniweb.com/software-development/cpp/threads/143139/c-template-success-methods-in-seperate-.cpp-file.