我正在研究一个C ++类,我想向其添加继承结构,但是最近我的同事添加了enable_shared_from_this
,阻止了添加继承结构的可能性。有人知道正确的语法吗?
预先感谢
当前实施:
class ATL_NO_VTABLE Own_Class
public std::enable_shared_from_this<Own_Class>
{
public:
Own_Class();
第一次尝试:
class ATL_NO_VTABLE Own_Class : public NONSENSE
public std::enable_shared_from_this<Own_Class>
{
public:
Own_Class();
=>C2143 : syntax error : missing ',' before 'public'
第二次尝试:
class ATL_NO_VTABLE Own_Class :
public std::enable_shared_from_this<Own_Class> : : public NONSENSE
{
public:
Own_Class();
=>C2143 : syntax error : missing ',' before 'public'
第三次尝试(绝望):
class ATL_NO_VTABLE Own_Class :
public std::enable_shared_from_this<Own_Class : public NONSENSE>
{
public:
Own_Class();
=>C2059 : syntax error ':'
(很抱歉,这很讽刺,但确实令人沮丧)
答案 0 :(得分:1)
在C ++中使用多重继承的正确语法如下:
class SomeClass : public InheritA, public InheritB
{
// [...]
}
因此,在您的情况下,以下方法应该起作用:
class ATL_NO_VTABLE Own_Class : public NONSENSE, public std::enable_shared_from_this<Own_Class>
{
// [...]
}