[英]shared_ptr : “call of an object of a class type without appropriate operator() or conversion function to pointer-to-function type”
#include "boost\shared_ptr.hpp"
class A{
public:
A(){}
~A(){}
};
int main()
{
boost::shared_ptr<A> ptrA;
ptrA(new A);
}
我想知道為什么此代碼無法編譯? 我想知道如果我只是使用它的區別
boost::shared_ptr<A> ptrA(new A);?
boost::shared_ptr<A> ptrA(new A);
調用將A*
轉換為shared_ptr
轉換構造函數。 這是構造ptr的默認方法。
ptrA(new A);
調用operator()
。 這樣做有很多原因,其中一個原因是使對象模仿功能,即函子。 但這不與shared_ptr
。
構造函數存在, operator()
不存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.