2013-11-20 40 views

回答

2

你必須使用成員初始化列表:

X::X() 
    : a(new Y()) 
// ^^^^^^^^^^^^ 
{ } 

否則a(new Y())被認爲boost::shared_ptr<Y>::operator()(Y*)呼籲其沒有定義(或原型),所以你得到一個錯誤。另一種解決辦法是使用分配:

X::X() 
{ 
    a = new Y(); // or a = boost::make_shared<Y>() 
} 
相關問題