class A { int ma; void printit(); A::A() : ma(666) {} }; #### #include "iostream" #define class struct #include "toto.h" main() { A a; std::cerr << a.ma << "\n"; a.printit(); } #### #include "iostream" #include "toto.h" void A::printit() { std::cerr << ma << "\n"; } #### $ g++ -c toto1.cc -o toto1.o $ g++ -c toto2.cc -o toto2.o In file included from toto2.cc:2: toto.h:1: warning: all member functions in class `A' are private $ g++ toto*.o -o a.out $ ./a.out 666 666 $