gpt4 book ai didi

c++ - 不允许抽象类的对象

转载 作者:行者123 更新时间:2023-11-27 22:46:30 25 4
gpt4 key购买 nike

我有这个层次结构,我正在尝试创建一个 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
}

最佳答案

IServerConnectionCreateData中,RequestSend都是pure virtual方法,在创建该派生类的实例之前,您必须在派生类中实现这些方法。

关于c++ - 不允许抽象类的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42220464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com