No, that only prevents the file being included twice in the same .cpp file. The solution to this problem is to move the function bodies into their own .cpp file:
foo.h: class Foo { Foo(); ~Foo(); }; fooclass.cpp: Foo::Foo() { ... } Foo::~Foo() { ... } --Wez. ----- Original Message ----- From: "Igal Ore" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]>; "Wez Furlong" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Wednesday, September 17, 2003 4:01 PM Subject: Re: [PHP-DEV] Re: C++ extension question > you are right , and for those cases there a preprocessor protection > #ifndef DO_NOT_MAKE_BOBO > #define DO_NOT_MAKE_BOBO > > class Foo{ > Foo(){...} > ~Foo(){...} > }; > #endif > > > isn't it? > > Wez Furlong wrote: > > This sounds like the "rookie" mistake of declaring your functions inline in > > the class definition in the header files, and then including those headers > > in multiple files. > > > > eg: foo.h: > > > > class Foo { > > Foo() { ... } > > ~Foo() { ... } > > }; > > > > foo.cpp: > > #include "foo.h" > > > > bar.cpp: > > #include "foo.h" > > > > == linker problems. > > > > --Wez. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php