我正在用 C++ 编写代码。我需要支持一些基本数据类型和 BigInt 之类的东西。此类型将暴露给外界(通过头文件),其中可能还包括 c 程序。
我应该将 BigInt 之类的数据类型实现为结构还是类?
困惑是因为
1.如果我把它实现为类,由于面向对象的优势,我可以在类中完成所有处理。但我可能必须为 C 程序实现一些解决方法
2. 如果我将它实现为结构体,我不需要为 C 程序做任何特殊的事情,但我失去了模块化和易于实现。
最佳答案
基本上 C 无法访问 C++ 对象,无论是结构/类(它们在 C++ 中是相同的,只是默认可见性说明符不同)。您必须为 C++ 对象创建过程包装器(即创建、方法调用、销毁等)。
对于创建,创建一个返回不透明指针的函数(在 C++ 中,这将是对象指针)。对于方法调用,将返回的指针(从上面的创建函数)添加为(通常是第一个)参数之一。对于销毁,它与方法调用相同,但通常除了上面的指针之外不接收其他参数。
关于c++ - 在 C 中使用 C++ 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10493568/