C++中的Java接口?

Interface as in java in c++?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How do you declare an interface in C++?

有人问我一个问题:"在C++中,没有像Java那样的接口。但是事件,然后你可以在C++中实现它们,你会怎么做?"

怎样?我会用虚拟方法做一个类。这看起来像Java中的接口?

谢谢你


可以使用多重继承在C++中创建接口。

您创建了一个纯虚拟的基类(所有函数都为0),然后您的类从此类继承。

多重继承意味着您可以从这些继承中任意多个继承。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Interface definition
class ISomethingable
{
public:
    virtual ~ISomethingable() {}
    virtual void DoSomething() = 0;    
}

// Your code
class MyClass : public ISomethingable
{
public:
    void DoSomething()
    {
         // Do something concrete.
    }
}

请参见:如何声明C++中的接口?


是的,只是创建一个没有成员变量和纯虚拟函数的类。


C++中的一个接口将是一个抽象的基类——一个不能被实例化的基类。与Java接口不同,它们实际上可以具有部分实现和成员变量。