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

Reply via email to