2013-11-15 40 views
2

我不知道是否有可能:我想跨多個源文件跨越一個模塊,這樣我就不必將模塊中的每個類都放到一個文件中。 所以我有一個名爲兩個文件「FileA.d」,「FileB.d」,我想他們兩個開始一個模塊名稱: 「模塊amodule」跨多個文件的相同模塊名稱

問題是後來,當我想導入它,我甚至不知道如何。

做「進口FILEA」產生錯誤:

"module amodule from file FileA.d must be imported as module 'amodule' " 

我真的不能弄清楚這是什麼意思,如文檔犯規提這事。 所以我的問題是 - 這是可能的,如果是的話 - 如何實現這一目標?

預先感謝您。

+0

糟糕的主意 - 有一個原因,你需要每個模塊多個類。儘量不要去思考C++/Java的方式。這解決了C++的朋友地獄... – DejanLekic

回答

2

一個更好的方法是創建一個模塊amodule,並有public import FileA, FileB;

+0

我想模塊中的classess成爲朋友。所以這可能不能解決問題。 – spectre

+0

這些文件可以互相導入 –

+0

但私人班級成員無法訪問,對不對? – spectre

2

你想要的是不容易的一個很好的理由。模塊級訪問解決了C++的朋友地獄。如果你來自C++世界 - 認爲模塊中的所有類都是朋友。這是一個語言設計決定,以及一個非常好的,恕我直言。

閱讀本節:http://dlang.org/cpptod.html#friends

簡而言之:緊耦合類(朋友在C++世界)應該是相同的模塊內。

D是一種模塊化編程語言,請牢記這一點,因爲這使得它與C++或Java不同。

+0

也許有理由不這樣做,但這不是我的問題。我的問題是如何(如果可能)做到這一點。原因留給程序員。即使你是對的,那麼當兩個緊密耦合的classess每個都有2000行時,情況可能仍然存在。因此,將它們並排放置會使文件太大。 – spectre

相關問題