0
File1.h運行時間分辨率C++命名空間衝突
// Declaration
Class A
{
void Func();
}
//Along with some other stuff
File1.cpp
//Definition
A::Func()
{
}
// Along with some other stuff
File2.h
class A
{
void Func();
}
File2.cpp
// Definition
File2::A::Func()
{
}
File3.cpp
#include "File1.h"
#include "File2.h"
//
Invokes Func()
Main1.cpp Main2.cpp
Main1.cpp File3.cpp和File2.cpp被建立起來
Main1.cpp File3.cpp和File1.cpp構建在一起
我想調用Func()
取決於不同ent linkage
但是,它給我編譯時錯誤。
我該如何解決編譯時錯誤?
有沒有解決上述問題的標準方法?
如果我使用File1和File2命名空間,那麼我將無法動態調用 。注意:我無法更改File1.h
您可能想要在您的問題中包含編譯錯誤。 – imaginaryboy 2010-08-24 04:19:02
你能解釋一下你希望如何利用這些重複的類定義和「動態調用」嗎?現在,這感覺就像一件永遠不會按需要工作的東西。 – TheUndeadFish 2010-08-24 04:22:09
File1和File2不是名稱空間。命名空間沒有運行時間解析。 C++中的類從「class」開始,而不是「Class」。函數的定義需要指定返回類型等等... – Chubsdad 2010-08-24 04:48:03