`
izuoyan
  • 浏览: 9006981 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在C#中派生C++的抽象类

 
阅读更多

目前看到了几种选择:

  • SWIG
    • 这个叫做"director"的机制不是真正的派生, 只是看起来像而已
    • C#里的类只是包装了一个C++对象的指针, 所有调用都是通过P/Invoke完成的, 实际上是两个不同的对象
  • CXXI
    • 通过改变C++对象的vtable实现派生
    • 通过DLL(so)的导出方法名来取得函数指针
    • 通过解析GCCXML来生成C++类的C#声明
    • MSVC的支持还没有完成, 可以参考这个去完善:Inheriting From a Native C++ Class in C#
  • [Hack]
    • 嵌入mono后可以通过C++类里调用C#那边同名类的method来实现
    • 也是假的派生, 实际上是两个对象
    • 可以在C++这边针对C#方法的调用做异常处理, 防止崩溃

分享到:
评论

相关推荐

    由Person类派生出学生类Student和教师类Teacher

    由Person类派生出学生类Student和教师类Teacher,并为他们添加必要的数据,为这两个派生类编写必要的构造函数和析构函数。然后编写一个主函数对以上功能进行测试。 包括了很多的程序可供您参考!

    面向对象c#试题参考

    d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。 5.C#的数据类型有(b) a)值类型和调用类型; b)值类型和引用类型; c)引用类型和关系类型; d)关系类型和调用类型; 6.下列描述错误的是(d...

    c#类的使用示例

    Notes:数据private类型,大部分方法public类型;...C#和其他面向对象一样,重载,多态,虚函数,抽象类这些特性都有; 重载和C++中的重载毫无区别,只有一个问题是在重载大小比较运算符(<, >=, >, <=

    C++程序设计基础实例教程

    面向对象的C语言:C++、C#、 Visual C++、 Visual C++.NET 1.3 面向对象的程序设计 1.抽象和封装—对象 2. 类 2.派生和继承 3.多态性 1.4 C++语言的程序结构 顺序结构 选择结构 循环结构 1.5 C++语言的...

    C#中面向对象编程机制之继承学习笔记

    假如不在派生类构造器中显示调用一个基类构造器,编译器会自动插入对基类的默认构造器的一个调用,然后才会执行派生类构造器中的代码, 如果基类没有默认的构造器,会造成编译错误。 举例:动物的共性:有嘴巴,有...

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

    7.4.3 在类定义中指定默认的形参值 314 7.4.4 在构造函数中使用初始化列表 316 7.4.5 声明显式的构造函数 317 7.5 类的私有成员 318 7.5.1 访问私有类成员 320 7.5.2 类的友元函数 321 7.5.3 默认复制构造...

    软件体系结构实验报告.pdf

    在实验过程中,学生将使用 C#、C++ 或 Java 等语言进行编程,并使用 Visual Studio 2013 和 MySQL 等工具进行开发和测试。通过实验,学生将掌握编程实现面向对象软件体系结构的方法,并且能够独立完成实验报告的书写...

    【。net 专业】 面试题

    密封类不能同时为抽象类。 sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理...

Global site tag (gtag.js) - Google Analytics