0
我有這個層次結構,我試圖創建一個IServer連接。但它說抽象類的對象是不允許的。抽象類的對象是不允許的
這裏是類,錯誤代碼是註釋。
struct IServerConnection : public CImplRingRefPtr<IServerConnection>, virtual public IRefPtr
{
virtual IServerData* CreateData(void) = 0;
virtual IServerData* Request(void) = 0;
virtual int Send(const IServerData *data) = 0;
};
struct ImplWFSConnection : public S3W::IServerConnection
{
private:
OGRDataSource *m_wfs_t;
public:
ImplWFSConnection() {}
~ImplWFSConnection() { OGRDataSource::DestroyDataSource(m_wfs_t); }
void Open(const char * url);
bool QueryLayer(const char* layer);
int Write(S3W::IWFSData *data);
S3W::CRefPtr<S3W::IWFSData> Read(void);
};
S3W::IServerConnection* ImplMapServer::OpenWFSConnection(const char *url)
{
if (!m_url)
{
return nullptr;
}
else
// connection_ptr->Open(m_url);
return new ImplWFSConnection(); /error
}
在繼承類中實現您的純虛函數(= 0)。 – Steeve
你爲什麼要在基類中實例化派生類?基類不應該依賴派生類。 –
歡迎來到Stack Overflow。請花些時間閱讀[The Tour](http://stackoverflow.com/tour),並參閱[幫助中心](http://stackoverflow.com/help/asking)中的資料,瞭解您可以在這裏問。 –