我正在创建一些自定义异常类,执行以下操作

class GXException
{
public:
    GXException(LPCWSTR pTxt):pReason(pTxt){};
    LPCWSTR pReason;
};

class GXVideoException : GXException
{
public:
    GXVideoException(LPCWSTR pTxt):pReason(pTxt){};
    LPCWSTR pReason;
};

当我创建GXVideoException扩展GXException时,出现以下错误
1>c:\users\numerical25\desktop\intro todirectx\godfiles\gxrendermanager\gxrendermanager\gxrendermanager\gxexceptions.h(14) : error C2512: 'GXException' : no appropriate default constructor available

最佳答案

您需要在派生构造函数的初始化列表中调用基类构造函数。同样,由于您是从基类派生的,因此不应使用相同的名称(pReason)重新声明第二个变量。

class GXException
{
public:
    GXException(LPCWSTR pTxt):pReason(pTxt){};
    LPCWSTR pReason;
};

class GXVideoException : GXException
{
public:
    GXVideoException(LPCWSTR pTxt)
    : GXException(pTxt)
    {}
};

08-15 22:00