one.cpp外部引用初始化
extern PureVirtualBase &instance;
void foo()
{
instance.click();
}
two.cpp
Derived instance;
我可以初始化在其他文件中引用?使用該代碼獲得conflicting declaration
。
one.cpp外部引用初始化
extern PureVirtualBase &instance;
void foo()
{
instance.click();
}
two.cpp
Derived instance;
我可以初始化在其他文件中引用?使用該代碼獲得conflicting declaration
。
在CPP文件:
static Derived instance_object;
PureVirtualBase &instance = instance_object;
這可以確保instance
正好匹配的類型 - 即PureVirtual&
作品!順便說一句,我可以寫'PureVirtualBase&實例'沒有任何賦值,它編譯爲0,但它將在運行時爲空:0。 – Artem
你是對的@Hcorg。感謝編輯 –
類型的定義和實例的聲明應該完全匹配。這似乎是你需要的getInstance()種功能你正在嘗試做的事:
Base& getInstance()
{
return instance;
}
您可以在其他文件中初始化,但你必須使用完全相同的類型。 – Hcorg