I am creating some custom exception classes doing the following
class GXException
{
public:
GXException(LPCWSTR pTxt):pReason(pTxt){};
LPCWSTR pReason;
};
class GXVideoException : GXException
{
public:
GXVideoException(LPCWSTR pTxt):pReason(pTxt){};
LPCWSTR pReason;
};
When I created GXVideoException to extend GXException, I get the following error
1>c:\users\numerical25\desktop\intro todirectx\godfiles\gxrendermanager\gxrendermanager\gxrendermanager\gxexceptions.h(14) : error C2512: 'GXException' : no appropriate default constructor available
You need to call your base class constructor inside your derived constructor's initializer list. Also since you are deriving from the base class you should not redeclare a second variable by the same name (pReason).
class GXException
{
public:
GXException(LPCWSTR pTxt):pReason(pTxt){};
LPCWSTR pReason;
};
class GXVideoException : GXException
{
public:
GXVideoException(LPCWSTR pTxt)
: GXException(pTxt)
{}
};
Brian's answer is correct, but I also find it helpful to define an 'inherited' type so that I don't have too many references to the parent class to maintain, in case the hierarchy changes.
class GXVideoException : GXException
{
private:
typedef GXEception inherited;
public:
GXVideoException(LPCWSTR pTxt)
: inherited(pTxt)
{}
};
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With