我有一個包含許多函數和變量的大命名空間。 現在我想將它們分成不同的文件以便於維護。如何將C++命名空間分解爲多個文件
只有一個問題是,一個文件可能需要來自其他文件的功能/變量,反之亦然,即需要包括B和B需要包括A ..它不起作用,因爲每個文件只能是包括一次。
我不確定這是否該做的方法,任何想法?
我有一個包含許多函數和變量的大命名空間。 現在我想將它們分成不同的文件以便於維護。如何將C++命名空間分解爲多個文件
只有一個問題是,一個文件可能需要來自其他文件的功能/變量,反之亦然,即需要包括B和B需要包括A ..它不起作用,因爲每個文件只能是包括一次。
我不確定這是否該做的方法,任何想法?
將您的函數原型放入頭文件(.h
)中。將你的功能實現放入源文件(.cpp
)。
這樣,你就可以通過包括B.h
在A.cpp
通過在B.cpp
A.h
使用,在B.cpp
在A.cpp
實現的功能。例如在A.cpp
在B.cpp
實現同時使用的功能。
UPDATE
安德烈在評論指出,這是所謂的 「提前聲明」。
這可能是一個具有挑戰性的問題,具體取決於您的代碼。 你需要分析所有的依賴關係,看看你是否能想出一種直觀的方式來分割你的代碼。
已經提到的前置聲明可以提供幫助。 它也可以幫助使用接口。在接口上可以找到很多,for instance here on stackoverflow
使用[forward declaration pattern](http://en.wikipedia.org/wiki/Forward_declaration) – Andrey