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
基本クラスで派生クラスをインスタンス化するのはなぜですか?基底クラスは派生クラスに依存してはいけません。 –
ようこそスタックオーバーフロー。 [The Tour](http://stackoverflow.com/tour)を読み、[ヘルプセンター](http://stackoverflow.com/help/asking)の資料を参考にしてください。ここに聞いてください。 –