3
A
回答
3
我认为最好的办法是提供围绕C++库的C包装。当我用C++进行编程时,这在10年或更早的时候非常流行,但我不知道它是否已经完成了。
基本上,对于每class C
,对于每一个构造ctor
暴露于创建extern "C" CPtr cCtor(....)
方法,它返回一个不透明的指针CPtr
和为每个函数func
暴露创建extern "C" cFunc(CPtr,....)
另一种方法是创建一个CStruct
它具有函数指针类型的成员变量,实现它们以调用类方法并让客户端完成所有艰苦的工作。
4
我不这么认为。使用名称修饰,以便每个重载函数具有与链接器查看的名称不同的名称。
你可以用C重写它们,并使用extern "C" {}
构造,但你会失去所有漂亮的继承,多态等等。你也可以将C++封装在C函数中,只公开C函数。
2
我能想到的唯一方法是将函数声明为extern“C”。链接器需要名称修改来区分例如通过它们的参数列表来重载函数(如果不是用于名称修饰,则链接器将不可用)。
0
虚拟功能将是我认为的答案,你有没有注意到COM,创建一个实例,它给你一个指向该接口的指针表示为类。我猜这个声明的方法不是按名字解决的,而是按槽位索引解决的。
相关问题
- 1. CField类的成员函数IsDirty名称
- 2. C++中相同的类成员名称和函数参数名称
- 3. 改变其他类的对象状态的成员函数
- 4. 模板类中成员函数的C++名称解析
- 5. C++改变从静态成员函数
- 6. 不允许任何成员函数在C++类中更改其数据成员
- 7. C++ - 通过成员函数更改一个类的成员值
- 8. C++:为成员函数的变异和非变异版本建议名称
- 9. C++分配成员的目标函数,类成员函数
- 10. C++静态成员函数及其范围
- 11. 名称查找成员函数
- 12. 类型名称后的预期成员名称或构造函数调用
- 13. 在Python中,如何获取成员函数类的名称?
- 14. C++析构函数的成员变量?
- 15. C++模板类成员函数,依赖于其他模板类
- 16. javascript更改函数参数变量名称并返回其值
- 17. C++新手类的成员函数
- 18. C++中的类成员函数指针
- 19. '静态'的C++类成员函数?
- 20. 函数参数名称和类变量名称的区别
- 21. 如何从成员函数中赋予类的成员变量
- 22. 全局变量修改的const成员函数,其中通过全局函数
- 23. 从评估的JS获取函数名称及其参数Rhino
- 24. 使用C++类的成员函数为C回调函数
- 25. C++模板指针与成员函数的签名和类型
- 26. 类成员变量,方法及其状态
- 27. C++可变参数类模板和成员函数
- 28. 调用成员C++的功能,但C函数具有相同的名称
- 29. 函数来改变不同扩展类型的名称文件
- 30. C++指针模板函数类成员
但你为什么要这样做? – 2009-02-23 07:25:22