我有一個問題。我在玩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