在我的代碼中,我使用了boost的shared_from_this特性的共享指針。爲了簡化,共享指針類似的路線如下共享:共享指針參考
class Q: public enable_shared_from_this<Q>
{
public:
shared_ptr<Q> f()
{
return shared_from_this();
}
}
int main()
{
shared_ptr<Q> p(new Q);
shared_ptr<Q> q = p->f();
.....
.....
}
當我審視這個在gdb:
(gdb) p *this
$8 = {
....
<boost::enable_shared_from_this<Q>> = {
weak_this_ = boost::weak_ptr<Q>(refs=0, weak=2) = {
px = (Q *) 0xa11f2000
}
}
....
}
什麼是「裁判」弱」引用的意義在這裏?是否refs = 0意味着沒有對象的引用?
謝謝!
我懷疑在構造指針p之前程序停在類Q的構造函數中p –
這只是突出顯示shared_ptr如何使用的代碼片段。所以,是的,事實上,有關shared_ptr的問題有很多。 – Maddy
而gdb輸出來自對象的核心分析,該對象的類型爲shared_ptr,析構函數。 – Maddy