Wo definieren, in C++ - Klassen member-template-Funktion und funktoren, die instanziert?

Ich habe eine Klasse Foo, die in einer kleinen, eigenständigen Projekt. Es hat eine definition der Klasse Foo.h mit der Implementierung für die Klasse' Mitglied Funktionen in eine Implementierung-Datei Foo.cpp.

Erste Frage, die man die member-Funktionen der Klasse Foo ist eine template-Methode Foo::doSomething(), ist es richtig, dass die Implementierung dieser Methode sollte mit der Deklaration der Funktion Foo.h ?

Den template-parameter, die Foo::doSomething() instanziiert werden mit einer von zwei Funktor Typen - Klasse CalcA und CalcB.

Sollte Ich:

  • (A) die Definition und die Implementierung der beiden Klassen Functor alle zusammen in Foo.cpp (wo Sie tatsächlich verwendet werden, durch die Implementierung von anderen Foo member-Funktionen zum Aufruf von Foo::doSomething).
  • (B) setzen Sie die definition und die Implementierung der beiden Klassen Functor in Foo.h.
  • (C) sollte ich split der definition und Umsetzung der beiden Funktoren über Foo.h und Foo.cpp als wäre man mit einem normalen Klasse?
InformationsquelleAutor Paul Caheny | 2010-11-30
Schreibe einen Kommentar