TITLE: Use of const and extern in header and implementation files PROBLEM: Doron Sherman (dorons@efi.com) Suppose I have an 'a.h' file containing a constant object declaration: extern const vector v; and an 'a.C' file containing the constant object definition (and also its initialization using a call to - vector(int size) constructor): const vector v( 10 ); Why does the linker fail with an unresolved? RESPONSE: Steve Clamage (steve@taumet.com) "const" on a declaration makes it local to the block or file, so this instance of 'v' is not made global. Your program, as far as the linker is concerned, contains only extern declarations for 'v'. On some systems this will fail to link, which would at least give you a clue about what is wrong. To make a const object global, you must declare it "extern". So in file "a.C" you must use extern const vector v( 10 ); to make this 'v' the same as the one referenced in "a.h".