I defined a class in a namespace in a header as follows
#ifndef _c1_ #define _c1_ namespace classspace { class Aclass; } class Aclass { //body };
You declare the class within the namespace but define it outside the namespace. So the declaration is:
classspace::Aclass
but the definition defines the implementation for:
::Aclass
Namespaces should match for declaration and definition.