Paulo, Do you have #ifndef statements in your array.h header file so that it only gets included once? For example, should do something like this in array.h (in all of your header files, actually): #ifndef ARRAY_H #define ARRAY_H <array.h stuff goes here> #endif That way, the preprocessor will only process your header file once per source file, even if it gets included by more than one other header file that you're including in your program. Make sense? Cheers, Lyle -----Original Message----- From: Paulo Cortes [mailto:cortes@xxxxxxxx] Sent: Monday, October 27, 2003 4:33 PM To: gcc-help@xxxxxxxxxxx Subject: error: redefinition of `class Array<T>' Hi I am building an Array group of classes, I have base Array class with derived vector, matrix and cube. Each derived class works fine separately, but if I combine them in a program I get: error: redefinition of `class Array<T>' this happend beacuse when I : #include <vector.h> #include <matrix.h> #include <cube.h> array.h get included too, so the compiler triggers the error. The problem is that I have to include array.h into the matrix, vector and cube header files in order to use the array base class. Any help would be apprecciated. Many thanks Paulo