|
|
1
5
你提出的有一些先例——微软的MFC类只是C兼容的Windows API周围的C++包装。 在你开始之前,你应该有一些目标,不仅仅是为自己创造繁忙的工作。C++应该比C更容易使用,否则你就不会得到任何东西。 |
|
2
3
这样做的一个重要原因是,如果您的C接口使用典型的“句柄”习惯用法来表示资源。
在C语言中,为了实现信息隐藏
C++包装器可以通过将RAI-映射构造和破坏应用于AgRE或释放句柄类型所标识的资源的函数,来添加一些真正有用的东西:
|
|
|
3
2
另一方面,类方法可以使C函数更易于使用,方法是为类客户机管理缓冲区等。类仍然使用C API来完成实际工作。 |
|
|
4
2
你可以双向地进行,或者围绕C函数的一个瘦C++包装,或者C++实例周围的C函数。 对于后者,一个典型的模式是:
这样一个简单的包装器是没有意义的,但不知道用哪种方式来做。C++包装器可以通过以下方式增加值:
|
|
|
5
1
我理解你想从C++的抽象能力中获益,但是仍然有代码可以用C编写代码访问。实现这一点的一种方法是在C++中编写代码的大部分,然后创建一组瘦外部“C”包装器函数,这些函数将把你的代码与C世界连接起来。 你所建议的方法同样有效,但是,正如另一位受访者所指出的,它不会为你购买任何额外的能量。
|
|
|
6
1
坦率地说,我不知道本质上重复C和C++功能的东西会买给你。 我建议尽可能地保持C函数的基础性,定义一个API,其中所有的原语都是公开的,没有任何花哨的东西。然后在更高的级别定义C++类,因此UART将有构造函数、析构函数、有意义的方法等等。它将拥有所有必要的数据存储。C++类不会公开所有可能的图元;为了做一些不同的事情,您需要编写一个新的成员函数或类,或者调用C API。 这就是OCI(Oracle C++调用接口)和MFC等系统的方法,并且它工作得很好。 |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |