私はより良い方法がある場合はそれを修正してくださいすること自由に感じなさい、どのフレーズ質問をするかわからない: 通常、コードは次のようにした.hと.cppのファイル間で分割される。...hまたは.hppファイルのコードに基づいて、あなたのアプリについて誰が何を知ることができますか?
をクラス宣言、関数プロトタイプ、および列挙型のようなもの は通常、ヘッダファイルに入っています。言い換えれば、 "定義"。
コードファイル(.cpp)は、 の実装を1つのファイルでのみ知る必要があるように設計されています。一般に、 関数本体と、他のモジュールによってアクセスされるべきでない/決して である内部変数は、.cppファイルに属するものです。言い換えれば、 「実装」。
iOSやAndroidのアプリストアに送信されたネイティブコード(C++)を使用しているアプリに関しては、パッケージの内容を調べることで外部ユーザーはどのような情報を知ることができますか?たとえば、クラス定義や関数名を発見できると聞きましたか?これは、通常、.hファイルにあるものが原因であると考えています。しかし、関数本体が.hファイルに含まれていれば、それらも表示されますか?誰かが私のアプリケーションを調べている場合、.hと.cppファイルの間でコードを分ける方法は、誰かが発見できるものに影響しますか?
編集:私が解決しようとしている問題はありません。私はちょうど人々が私の.hファイルにあるコードに基づいて見ることができるものを学ぼうとしています。
解決したい*実際の問題は何ですか?コードを「隠す」方法とにかくそれは決してうまくいかない。誰かがあなたのアプリケーションの内部動作を学びたいなら、それを止めるための何もできません。ゲームやプログラムのハックやクラックはどうやって作成されたと思いますか?非常に多くのセキュリティホールが見つかって虐待されていることは言うまでもありませんか? –
これは3つの異なる概念と3つの異なる言語です。たとえば、APKからクラス定義を抽出することは、「簡単な」方法はJavaコードを意味します。あなたのC++パートの構造にかかわらず、 "攻撃者"は、エクスポートされたネイティブ関数の名前だけを見つけることができます。それは、Javaで同様の名前の関数で表現されるためです。これはC++に関するものですか? –
よく書かれたプログラムの場合、読者は決して '.cpp'を読む必要はありません。絶対にヘッダーからしか理解できないはずです。 – alexeykuzmin0