3

次のようなヘッダーのみのレイアウトで C++ アプリケーションをコーディングしたいと思っています。

// code3.h
#include <iostream>
class code3
{
public:
  void print()
  {
    std::cout << "hello " << std::endl;
  }
};

// code2.h
#include "code3.h"
class code2
{
public:
  void print()
  {
    code3 c;
    c.print();
  }
};

// code1.h
#include "code3.h"    
class code1
{
public:
  void print()
  {
    code3 c;
    c.print();
  }
};

// main.cpp
#include "code1.h"
#include "code2.h"

int main()
{
  code1 c1; 
  c1.print();

  code2 c2; 
  c2.print();
}

唯一の cpp ファイルがメイン ファイルになります。残りのコードはヘッダー ファイルに配置されます。

このアプローチに何らかのパフォーマンス上の問題があるかどうかを知りたいです。クラス宣言でメソッドを定義するとインライン化されることはわかっていますが、cpp ファイルが 1 つだけになるため、インライン メソッドが重複することはありません。パフォーマンスに焦点を当てて質問したいだけです。拡張性、読みやすさ、メンテナンスなどについて話しているのではありません。このアプローチで、パフォーマンスの問題を引き起こす可能性のある何かが欠けているかどうかを知りたいです。

ありがとう!

4

2 に答える 2

4

プロジェクトに数百 (またはそれ以上) のファイルがあり、何かを変更するたびにすべてのコードを再コンパイルする必要がある場合、これはかなり非現実的になります。

小規模なソフトウェア プロジェクトでは、異なるソース ファイルを使用する理由はほとんどありませんが、複数のソース ファイルを使用することによる大きな欠点はありません。

ソースが十数個のファイルになり始めると、コンパイル時間が長くなり始めます。また、コードの機能グループを分離することははるかに困難です。これは、コードの 1 つの塊を取得して別のプロジェクトで使用する際の容易さに影響を与えます。これは、コードで作業するときに役立つことがよくあります。

于 2013-09-28T11:03:33.977 に答える
4

前回この質問をしたとき、役立つ回答がたくさんありました: http://www.daniweb.com/software-development/cpp/threads/423106/separate-headers-from-source

基本的に、「余分な」ファイルを持ち、ヘッダーとソースの間を行き来することも嫌いだったので、なぜソースをヘッダーから分離する必要があるのか​​ を尋ねました。私が得た答えはあなたにとって役立つかもしれないと思うので、そのリンクを上に残しておきます.

于 2013-09-28T19:14:02.323 に答える