0

C++ の最も基本的なことは学んだのですが、コードを整理して C++ プロジェクトを開始する方法がわからないような気がします。プロジェクト/コード編成に関するガイドを検索しましたが、運が悪かったです。

だから、よくコード化された実際のプログラムを見つけて、それがどのように構成されているかを確認したいのですが、何も見つかりません。C ++で本当によく構成されたプログラムを知っている人はいますか? できればオープンソース、端末ベース、UNIX のみ。

ありがとう。

4

5 に答える 5

2

これは、主にいくつかのことに依存しています。

  1. サポートされているプラ​​ットフォーム: 異なるプラットフォームを異なる方法で抽象化すると、異なるコード構造にプッシュまたはプルされます。
  2. ビルドシステム: CMake、qmake、autocr*p、Ant、Bjam、jam など...
  3. IDE: これはショーストッパーではありませんが、それでも 2 番を決定する可能性があります。
  4. それはGUIまたはコンソールのみまたはライブラリプロジェクトですか?特にGUIと「処理」機能を分割するという暗黙のルールに従う場合、IMOはプログラムを異なる方法で構造化する必要があります。ライブラリには素敵な API ヘッダー セットが必要です。別の (ライブラリ以外の API にバインドされた) プロジェクトでは、その点で自由になります。
  5. 何が一番いいと思いますか? 特定のセットアップが正しくないと感じた場合は、それを使用せずにリファクタリングしてください (もちろん、時間がかからない場合は...

小さなプラットフォーム抽象化レイヤーを使用して、謙虚な C++ プロジェクトを開始したばかりです。おそらく、ヒントや提案が得られるでしょう。ソースコードはここで見ることができます (現在はまったく機能せず、qmake を使用してビルドしています): http://sourceforge.net/p/ambrosia/git -> browse

私がやったこと: - (現在) プラットフォームごとに 1 つのソース ファイルに実装されている、プラットフォームに依存しない関数定義を提供する 1 つのプラットフォーム抽象化ヘッダー。- 事実上どこでも必要なものを含むいくつかのヘッダーを含む 1 つのグローバル ヘッダー。- コードの目的ごとに論理的に編成されたいくつかのサブフォルダー。

于 2010-11-17T19:38:27.860 に答える
1

一般に、コーディングを開始する前に最初に行うことは、命名規則を決定することです。
変数名、クラス名、名前空間、メソッド名など。
次に、ヘッダーファイルとcppファイルのコードの区切りと、それらが存在するディレクトリ(同じディレクトリまたは異なるディレクトリ)を決定する必要があります。
ディレクトリ名は意味のあるものにする必要があります(ここではより多くの規則があります)。つまり、多くのコンポーネントで使用されるユーティリティメソッドを提供するクラスをサブディレクトリec/commonまたは/utilに配置する必要があります。
クリアケースなどのバージョン管理システムを決定する必要があります。
また、非常に重要なポイント(IMHO)は、ロギングがどのように行われるかです。これは実装され、すべてのモジュールに一貫している必要があります。
準備ができたプロジェクトを研究する場合のように、これらは焦点を当てるべき強みです。コードのすべての規則と基本的な関係に気付くには、かなり研究する必要があるため、時間がかかる場合があります。さらに、ある規則が別の規則よりも優先される理由がわかりません。

于 2010-11-17T20:10:55.217 に答える
0

C ++アプリでコードを編成することに関して、広く受け入れられているルールはありません。たとえば、名前空間を使用し、名前空間ごとに個別のフォルダーを作成し、その名前空間に関連するすべてのヘッダーとソースを対応するフォルダーに配置することを好みます。したがって、プロジェクトルートには、main()、makefile、および場合によっては他のいくつかのファイル。ただし、他の人は異なる好みを持っているかもしれません。

于 2010-11-17T19:32:15.813 に答える
-1

Google の C++ スタイル ガイド

たとえば、Google Chrome のソース コードを見てみることをお勧めします。これは大規模ですが、Google が作成したものであり、コーディング標準を真剣に考えていると私は信じています。

于 2010-11-17T19:36:50.857 に答える