【问题标题】:How do I define interfaces in managed C++/CLI如何在托管 C++/CLI 中定义接口
【发布时间】:2009-06-05 09:11:15
【问题描述】:

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

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

【问题讨论】:

  • 请更准确地定义您的意思
  • 您想创建可以在托管代码中实现的接口吗?或将由 C++ 独占使用的接口?

标签: visual-c++ c++-cli


【解决方案1】:

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

using namespace System;

interface class IFoo
{
    String^ GetName();
};

【讨论】:

  • 值得注意的是,属性的​​语法是:property String^ Name;
【解决方案2】:

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

struct IFoo
{
    virtual void Bar() = 0;
}

另外,请参阅this

【讨论】:

  • 在销毁对象时造成的内存泄漏怎么办!基类必须具有公共虚拟析构函数或受保护的非虚拟析构函数。
  • @Anton Gogolev 如果你有虚拟成员,你应该有一个虚拟析构函数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-01
  • 1970-01-01
相关资源
最近更新 更多