| Jeff Abrahamson on Sun, 16 Feb 2003 20:11:10 -0500 |
|
On Sun, Feb 16, 2003 at 07:17:42PM -0500, Jeff Abrahamson wrote:
> Looking for more syntax help, I've gotta get a copy of version 3 of
> Stroustrup soon.
>
> I'm trying to derive from a templated class, but I'm not getting the
> syntax right. The C++ faq and google aren't helping me here. Pointers
> or outright answers appreciated.
>
> Thanks much. Here's the simple example:
>
>
> template <class T>
> class SwapArray {
>
> };
>
>
> class Bar : public template <class T> SwapArray {
> //class Bar : public SwapArray {
>
> };
The answer, I think, is two fold:
First, since Bar makes specific the class T, it has to specify it:
class Bar : public SwapArray<Foo> { ... };
Second, forward declarations of template classes aren't good enough:
the entire class definition must precede it, even though this means an
include of a .h in another .h.
Indeed, the implementation of a template class has to go with the
template classes declaration, near as I can tell, since the compiler
needs to be able to generate the appropriate code at compilation time
for the code that uses the template class.
--
Jeff
Jeff Abrahamson <http://www.purple.com/jeff/>
GPG fingerprint: 1A1A BA95 D082 A558 A276 63C6 16BF 8C4C 0D1D AE4B
Attachment:
pgpDj1ir8eLJa.pgp
|
|