最近因为要用到一个开源专案, 需要看里面的C++ code, 本身对C++不熟
但越看觉得越疑惑, 本身是有JAVA经验, 同样是OOP, 看来想法很不一样
C++跟C一样, 需要header file, 我自己的直觉是这样
header负责定义框架, 让其他人只要看到header, 就知道这个class有些什么, 包含
include了那些其他文件, 类别方法的signature, 等等
cpp档案负责实作这些逻辑, 理想情况下, 一个cpp档只定义一个类别, 并只include自己
的header file
例如
cup.h
#include <string>
namespace EX
{
class Cup
{
public:
drink();
fill();
private:
bool canDrink;
}
}
cup.cpp
#include "cup.h"
Cup::drink()
{
canDrink = false;
}
Cup::fill()
{
canDrink = true;
}
但实际上, 我看到的source code, header里面有include一堆文件, cpp档又include另一
堆, 然后header里面定义不止一个class, 而且还有实作逻辑在里面. 阅读起来真的是一
种折磨.
我想问的是, C++写成这样是一种怎样的pattern? 因为开源专案都有很多人在写, 如果
分散成这样, 应该很难互相合作才对, 所以这种pattern是代表某种大家认同的设计模式?
C++的header该负责什么内容, 是不是有大家比较公认的pattern?