簡體   English   中英

shared_ptr:“在沒有適當的operator()或將函數轉換為指針到函數的類型的情況下,調用類類型的對象”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM