私はC++でコードを書いています。基本的なデータ型やBigIntのようなものはほとんどサポートしなくてはなりません。このタイプは外部(ヘッダファイルを介して)に公開されます。これにはcプログラムも含まれます。
構造体やクラスとしてBigIntのようなデータ型を実装する必要がありますか?
混乱があるのは、
です。1.クラスとして実装すると、オブジェクト指向のメリットとして、すべての処理をクラスで実行できます。しかし、私はCプログラムのいくつかの回避策を実装しなければならないかもしれません。
2.私がstructとして実装すると、私はcプログラムのために何もする必要はありませんが、モジュール性と実装が簡単です。cでのC++オブジェクトの使用
1
A
答えて
4
基本的にCはstruct/classのどちらのC++オブジェクトにもアクセスできませんでした(C++では同じですが、デフォルトの可視性指定子でのみ異なります)。 C++オブジェクトの手続きラッパー(作成、メソッド呼び出し、破壊など)を作成する必要があります。
作成するには、不透明なポインタを返す関数を作成します(C++ではこれがオブジェクトポインタになります)。メソッド呼び出しの場合、(通常は最初の)パラメータの1つとして返されたポインタ(上記の作成関数から)を追加します。破壊の場合、メソッド呼び出しと同じですが、通常、上記のポインタ以外の他のパラメータは受け取りません。
0
C言語で使う予定の場合は、C言語で記述することをお勧めします。もう1つの選択肢は、C言語で記述し、OOインタフェースを提供するC++ラッパーを提供することです。
関連する問題
- 1. C#でPythonオブジェクトを使用
- 2. C#オブジェクトでのCrystal Reportsの使用
- 3. C++でのCの使用
- 4. C#console-projectのCOMオブジェクトの使用
- 5. C#静的オブジェクトでのブロック使用の使用
- 6. Objective-Cオブジェクトの2次元C配列の使用方法は?
- 7. C++クラス/オブジェクト関数の使用クエリ
- 8. C#:オブジェクトで使用するクラス
- 9. Objective-Cオブジェクトでmalloc/freeを使用
- 10. C#.NETでCOMオブジェクトを使用するとC#.NETでオブジェクトが返される
- 11. CプログラムのC++共有オブジェクトを使用しますか?
- 12. C++/CLIで使用される動的なC#オブジェクト
- 13. C#の汎用オブジェクトのリスト
- 14. Objective C++でのC++の使用?
- 15. C++でのC#DLLの使用
- 16. objective-cでのC++クラスの使用
- 17. C/C++でのPythonコードの使用
- 18. C/C++プログラミングプロジェクトでのBashスクリプトの使用。
- 19. Objective-Cブロック - オブジェクトとして使用
- 20. C++のコードとオブジェクトはC?
- 21. C++でのビッグベクトルの使用
- 22. C#でのジェネリックの使用
- 23. C#での#undefの使用
- 24. C#でのストリームの使用
- 25. Cでのin_addrの使用#
- 26. C#アプリケーションでのCまたはC++ APIの使用
- 27. C/C++プロジェクト用Mavenの使用
- 28. C#のロック(オブジェクト)
- 29. C#オブジェクトのディープコピー
- 30. C++でのオブジェクトの配列
私のライブラリはすでにC++で書かれています。私はデータ型のようなBigIntをサポートするように拡張しています。主な使用法はC++のために使用されますが、ほとんどの場合、それはcである可能性があります。 – Rahul
さて、CでC++オブジェクトを使う方法はありますが、CにはC++の意味でのオブジェクトの概念がないため、すばやく*非常に*になります。基本的には、クラスがCからリンクできないため、すべてのメソッドのラッパー関数を作成する必要があります。 – Corbin
関連:http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html #faq-32.9 – Corbin