繁体   English   中英

在c中使用c ++对象

[英]Using c++ object in c

我用c ++编写代码。 我需要支持几个基本数据类型和BigInt之类的东西。 这种类型将暴露给外界(通过头文件),也可能包括c程序。
我应该像数据类型一样将BigInt实现为struct还是类?
混乱是因为
1.如果我把它作为类实现,作为OO的优点,我可以在课堂上进行所有处理。 但我可能不得不为c程序实现一些工作
2.如果我将它作为结构实现,我不需要为c程序做任何特殊的事情,但是我松散的模块化和易于实现。

基本上C无法访问C ++对象,无论是struct / class(它们在C ++中是相同的,只在默认的可见性说明符中有所不同)。 您必须为C ++对象创建过程包装器(即创建,方法调用,销毁等)。

对于创建,创建一个返回不透明指针的函数(在C ++中,这将是对象指针)。 对于方法调用,将返回的指针(来自上面的创建函数)添加为(通常是第一个)参数之一。 对于破坏,它与方法调用相同,但通常不会接收除上面指针之外的其他参数。

如果你计划在C中使用它,我建议你用C语言编写它.C ++与C相比,C语言要好一百倍。 另一个选择是在C中编写它,然后提供一个瘦C ++包装器,为它提供一个OO接口。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM