※ 引述《maxi326 (寻找独立游戏制作团员!)》之铭言:
: 最近因为要用到一个开源专案, 需要看里面的C++ code, 本身对C++不熟
: 但越看觉得越疑惑, 本身是有JAVA经验, 同样是OOP, 看来想法很不一样
: C++跟C一样, 需要header file, 我自己的直觉是这样
: header负责定义框架, 让其他人只要看到header, 就知道这个class有些什么, 包含
: include了那些其他文件, 类别方法的signature, 等等
: cpp档案负责实作这些逻辑, 理想情况下, 一个cpp档只定义一个类别, 并只include自己
: 的header file
: 但实际上, 我看到的source code, header里面有include一堆文件, cpp档又include另一
: 堆, 然后header里面定义不止一个class, 而且还有实作逻辑在里面. 阅读起来真的是一
: 种折磨.
: 我想问的是, C++写成这样是一种怎样的pattern? 因为开源专案都有很多人在写, 如果
: 分散成这样, 应该很难互相合作才对, 所以这种pattern是代表某种大家认同的设计模式?
: C++的header该负责什么内容, 是不是有大家比较公认的pattern?
第一 c家族中最接近java只有C# 如果你看不顺眼 请找cs函式库^^
如果你对C++有兴趣 请参考boost
两个原因 1.STL的扩充TR1跟boost重叠 还算是一种标准
2.cmake是现在主流
从boost这边可以看到随便选一个hpp到处是你所说的"问题"
第二 如果要说好的design pattern 顶多还是TDD 所以推荐你看gtest