Re: static class member initialization
On 12/18/2012 2:49 PM, Philipp Kraus wrote:
I have got a problem with the initialization of a static class member of
a singleton class.
The class shows (short) :
class myPluginUse {
public :
template<typename T> T myMethod();
private :
static myPluginUse* m_instance;
}
This class is used in the main program and I initialialize the static
member on the before the
main function. This works well, but this class is also used in a plugin
(DLL) but at the moment
I need a initialization of the static member also on the plugin, which
includes this header.
Huh? Two buts in a sentence - I am confused.
But the plugin cpp file needs only the public part of the class, not the
private or static member
or any implementation. I can "copy" the header part, but I don't want to
use two different files.
How can I use "one" header without a static initialization on my plugin
cpp and initialization on
my main program?
Maybe...
// part for use in the DLL
class myPluginForDLLUse
{
public:
virtual void foo() = 0; // interface
};
myPluginForDLLUse* someStandAloneFunction();
// part for use in your implementation, along with the other part
class myPluginImplementation : public myPluginForDLLUse
{
virtual void foo(); // this is where your functionality is
// and all other stuff that your plugin needs at creation
};
// implemenation of your stand-alone function
myPluginForDLLUse* someStandAloneFunction()
{
static myPluginImplementation myPlugin;
return &myPlugin;
}
V
--
I do not respond to top-posted replies, please don't ask