仅标头C++应用程序有什么问题?



我想使用仅标头布局编写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 文件,因此内联方法不会重复。我只想把我的问题集中在性能上。我不是在谈论可扩展性、易读性、维护或其他任何东西。我想知道这种方法是否遗漏了一些可能产生性能问题的内容。

谢谢!

你会发现

,当你的项目有几百个(或更多)文件时,这变得相当不切实际,并且每次你改变一些东西时,所有的代码都必须重新编译。

在一个小型软件项目中,没有理由拥有不同的源文件,但是拥有多个源文件并没有巨大的缺点。

当源文件开始超过十几个文件时,编译时间开始增加。隔离代码的功能组也困难得多,这反过来又会影响您获取一组代码并将其用于不同项目的难易程度 - 这在处理代码时通常是一件有用的事情。

上次我问这个问题时,我得到了大量有用的答案:http://www.daniweb.com/software-development/cpp/threads/423106/separate-headers-from-source

基本上我问为什么我应该将我的源与标题分开,因为我曾经也讨厌拥有"额外"文件并在标题和源之间来回切换。我认为我得到的答案可能对你有用,所以我只是在上面留下那个链接。

最新更新