我有一个问题。我在玩enable_shared_from_this
,注意到一件奇怪的事情。这个例子正常工作:类与结构与enable_shared_from_this
#include <iostream>
#include <memory>
using namespace std;
struct Test : enable_shared_from_this<Test>
{
};
int main() {
shared_ptr<Test> ptr(new Test);
return 0;
}
但是,当我改变struct
到class
它停止编译!
错误说:
/usr/include/c++/4.8/bits/shared_ptr_base.h:772:58: error: ‘std::enable_shared_from_this’ is an inaccessible base of ‘Test’ __enable_shared_from_this_helper(_M_refcount, __p, __p);
有没有人有一个线索,为什么会这样?
为'struct'是'public'而对于'class',这是'private'继承。 – dyp 2014-09-30 15:00:00
没错。默认继承是答案。谢谢! – Jack 2014-09-30 15:09:32