5

私は中程度の経験を持つ Java / C# プログラマーで、最近 C++ の学習を開始しました。問題は、さまざまなヘッダー ファイルとコード ファイルの構造を理解するのに苦労していることです。これは主に、コンパイラがすべてをリンクする方法に関する私の理解不足によるものと思われます。いくつかの教科書を読んでみましたが、私の先入観は Java と C# の知識に大きく影響されています。たとえば、クラス定義だけでなく、名前空間でメソッドなどを定義できるという事実を理解するのに苦労しています。

私はたくさんの C++ -> Java/C# ガイドを見つけましたが、事実上、逆に行くものは何もありません。特にコンパイル プロセスの理解に関して、Java/C# から C++ への移行を容易にするための優れたリソースはありますか?

4

4 に答える 4

1

コンパイルとリンクが別々である理由も知りたいと思うかもしれません(それを説明する投稿が見当たらず、物事の根本的な理由がわからないため、多くの混乱の原因となっているためです)。

リンクとコンパイルは、ライブラリ呼び出しを行う必要があるため (複数の理由がある場合があります)、個別に完了します。またはその同類のいずれかを定義した場合、それらのヘッダーで関数プロトタイプを実装するコードは、既にコンパイルされ、オブジェクト コードとしてどこかに置かれているライブラリの一部です。代わりに大規模なコンパイル プロセスを使用する場合は、それらのライブラリ呼び出しのソースが必要になるだけでなく、ライブラリ コードもコンパイルするため、コンパイル中により多くの時間が必要になります。

于 2009-02-11T12:41:38.067 に答える