[問題] C++ header file 疑問
看板C_and_CPP (C/C++)作者maxi326 (尋找獨立遊戲製作團員!)時間9年前 (2016/06/23 15:48)推噓8(8推 0噓 11→)留言19則, 11人參與討論串1/2 (看更多)
最近因為要用到一個開源專案, 需要看裡面的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?
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.228.246.99
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1466668104.A.37A.html
推
06/23 15:57, , 1F
06/23 15:57, 1F
→
06/23 15:57, , 2F
06/23 15:57, 2F
推
06/23 16:03, , 3F
06/23 16:03, 3F
→
06/23 16:04, , 4F
06/23 16:04, 4F
推
06/23 16:21, , 5F
06/23 16:21, 5F
→
06/23 16:46, , 6F
06/23 16:46, 6F
推
06/23 19:39, , 7F
06/23 19:39, 7F
推
06/23 23:02, , 8F
06/23 23:02, 8F
推
06/24 00:59, , 9F
06/24 00:59, 9F
推
06/24 03:22, , 10F
06/24 03:22, 10F
→
06/24 03:22, , 11F
06/24 03:22, 11F
→
06/24 03:23, , 12F
06/24 03:23, 12F
→
06/24 03:24, , 13F
06/24 03:24, 13F
→
06/24 03:25, , 14F
06/24 03:25, 14F
→
06/24 03:25, , 15F
06/24 03:25, 15F
→
06/24 09:41, , 16F
06/24 09:41, 16F
推
06/24 23:22, , 17F
06/24 23:22, 17F
→
06/24 23:22, , 18F
06/24 23:22, 18F
→
06/25 02:09, , 19F
06/25 02:09, 19F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章