[英]create object of abstract class c++
在我的項目中,我有IAcquirer.h
文件,該文件的內容如下所示
class IAcquirer {
public:
IAcquirer() {}
virtual ~IAcquirer() {}
virtual int initAcquirer(std::string ) = 0;
virtual int processTransactionToHost(const transaction::Transaction &tr, transaction::TransactionDataContainer &txnDataContainer) =0;
virtual int connect(bool) =0;
virtual int disconnect(void) =0;
};
現在,在另一個名為system.cpp
文件中,創建了IAcquirer
類的對象
boomer::host::IAcquirer *pAcquirer;
pAcquirer->processTransactionToHost(****,***);
但是據我了解,我們無法創建抽象類的對象,現在該對象正在其他文件中創建
您的理解是正確的,您不能創建抽象類的對象。
但是,您可以創建派生自抽象類的對象。 這些對象與其基本抽象類兼容,並且可以通過類型為抽象基本的指針或引用進行操作。
例如,這是有效的:
class RealAcquirer : public IAcquirer {
virtual int initAcquirer(std::string ) {
cout << "hello" << endl;
return 0;
}
... // Other pure virtual member functions implememted here
};
IAcquirer *make() {
return new RealAcquirer();
}
一旦獲得了指向IAcquirer
的指針,就可以通過它調用IAcquirer
的任何成員函數,包括在派生類中重寫的純虛擬成員函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.