Using C++
posted on 2010-06-11 17:03 codejie 閱讀(1902) 評論(12) 編輯 收藏 引用 所屬分類: C++
呵呵 很簡單 代碼不能這么寫 類的依賴關系不允許形成循環,放你這里就是兩個類不能互相都依賴對方。 回復 更多評論
@風吹云散盡是的,把CB類去掉,只留下typedef int INT;void Func(CA::TVector& vt);這樣也不行,相對于空間概念來說是namespace和class是一樣的。我現在想知道再不增加新文件的情況下,當然了,也別合成一個文件,有解決辦法不? 回復 更多評論
只需要將 nameA.h 中的:#include "classA.h"替換為:class CA;即可。 回復 更多評論
@taowangCA::TVector這個類型怎么讓編譯器知道呢?這種前置方式一般只能用于nameA.h中CA的指針或引用實例。當含有類型時,就不好用了~ 回復 更多評論
不是合并成一個文件,而是你要拆成3個文件。 回復 更多評論
@陳梓瀚(vczh)嗯,我只是不想增加新文件。這里只是個例子,實際代碼太多,要移動到新文件中,工作量太大了,所以想看看有沒有其它方法~ 回復 更多評論
@codejie 文件多容易管,實在不行你用C#,人家沒有頭文件,聲明沒有順序,類庫還大,多爽 回復 更多評論
個人覺得這種情況,就設計感覺上來說就不好。互相耦合。單就這個情況來看,可以把類型抽離到一個公共文件里。如果是對類本身的依賴,當然可以使用前置聲明。 回復 更多評論
@陳梓瀚(vczh)在我看來文件超過15個就難管了,一般這時我就開始封裝庫了。。。C#就扯遠了,BASIC不更好,變量都可以不定義呢。。。咱們還是C++吧~ 回復 更多評論
@Kevin Lynx說的沒錯,變成這樣是有歷史原因的,寫著寫著就開始耦合了,都沒有注意到。。。目前做的修改就是在分離類型,只是有點亂,一時還真不好下手,所以總想著有沒有偷懶的法子。。。(看來沒有了。。。) 回復 更多評論
@codejie 幾百個文件上千個類我覺得都是正常的吧,功能一多代碼自然就要多了……畢竟文件那只是物理結構,跟代碼一點關系都沒有,何必在意。你是編程還是編文件啊…… 回復 更多評論
@陳梓瀚(vczh)說來慚愧,從來沒自己寫過一個超過100+個文件的工程,都很零散。。。 回復 更多評論