如何在托管C++/CLI中定义接口

Cut*_*ute 15 c++-cli visual-c++

我们可以使用Visual Studio在C++中定义接口吗?

如果是,那么在C++中定义接口的例子是什么?

Dav*_*Yaw 22

在托管C++中,这是托管接口的语法.

using namespace System;

interface class IFoo
{
    String^ GetName();
};
Run Code Online (Sandbox Code Playgroud)


Ant*_*lev 1

C++ 本身没有“接口”的概念。它们通常用带有纯虚函数的抽象类来模拟。此外,classes 通常被structs 替代,因为它们的默认访问修饰符是public。因此,

struct IFoo
{
    virtual void Bar() = 0;
}
Run Code Online (Sandbox Code Playgroud)

另外,请参阅

  • 那么在对象销毁时造成的内存泄漏又如何呢?基类必须具有公共虚拟析构函数或受保护的非虚拟析构函数。 (3认同)
  • @Anton Gogolev 如果你有虚拟成员,你应该有一个虚拟析构函数 (2认同)