簡體   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