Re: Re: C++ extension question

From: Date: Wed, 17 Sep 2003 15:16:29 +0000
Subject: Re: Re: C++ extension question
References: 1 2 3 4 5  Groups: php.internals 
Request: Send a blank email to internals+get-4514@lists.php.net to get a copy of this message
yes you right again , but as i suggested , adn thinking that problem is existin in this scenatrio cert.cpp (main file with all PHP required defitions and becoming a big source file; all php includes surrounded by extern "C" {}) php_TPKCS12.cpp have only functions related to PKCS#12 treating (encypted file storage for end user certificates, private keys and etc.) meaning in this file there implementation for php functions dealing with p12 And there i have a problem , at least i think. After brief verification i'm do not use in second file and Classes associated with problem that you mentioned. Wez Furlong wrote:
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" <iore@cipherquest.com> To: <internals@lists.php.net>; "Wez Furlong" <wez@thebrainroom.com> Cc: <jay@php.net>; <internals@lists.php.net> 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.
     


« previous php.internals (#4514) next »