![](/img/trans.png)
[英]C++ Building an API using Interface classes, Templates and Object Factories
[英]Building interface in c++
請考慮以下代碼:
class IMyInterface
{
private:
IMyInterface();
~IMyInterface();
public:
virtual void func1();
virtual void func2(const SerialPortParameters);
virtual int func3(unsigned char *, int bufferSize, int);
};
在C ++中聲明接口可以嗎? 我將構造函數放在專用部分,這樣沒人可以從中創建對象,並且所有方法都是虛擬的。 這是在c ++中構建接口的標准方法嗎?
而且它只有一個頭文件。 由於它是一個接口,因此沒有實現,因此我認為無需創建cpp文件。 我對嗎?
謝謝你的幫助。
在C ++中聲明接口可以嗎? ...這是在c ++中構建接口的標准方法嗎?
不,不是。 你應該修復幾件事
class IMyInterface
{
public:
virtual ~IMyInterface() {}
virtual void func1() = 0;
virtual void func2(const SerialPortParameters) = 0;
virtual int func3(unsigned char *, int bufferSize, int) = 0;
};
您根本不需要構造函數,因為不會實例化接口。 您還應通過以下方式使這些方法(析構函數除外)成為pure virtual
。 使這些功能pure vitual
,您將創建一個無法實例化的abstract class
。
public:
virtual ~IMyInterface(){}
virtual void func1()=0;
virtual void func2(const SerialPortParameters)=0;
virtual int func3(unsigned char *, int bufferSize, int)=0;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.