接口与纯虚方法的类

Interface vs class with pure virtual methods

本文关键字:方法 接口      更新时间:2023-10-16

我想用普通的c++编写windows的shell扩展,但是后来我被关键字interface弄糊涂了。在许多文章中,我读到我可以通过编写只包含虚方法而不包含任何代码的类来在c++中创建接口。例如:

class IIsThisAnInterface_QuestionMark {
    virtual MyMethod (
        int firstParameter,
        double secondParameter) = 0;
    virtual AnotherMethod (
        wchar_t *firstParameter) = 0;
}

但是本文的作者使用interface关键字来定义接口。所以我的问题是:如何在c++中正确定义接口?(因为我是在c#的世界里长大的,所以我知道接口是为实现这些接口的类指定方法的构造。)

c++不像某些语言那样严格地提供接口。c++的机制是为一个类提供一个或多个声明所需接口的纯虚方法。严格来说,这样的类只是一个抽象类,但可以考虑将其称为子类将实现的接口。