有一個struct
靜態成員,因爲它需要在析構函數。我可以從另一個函數內初始化一個靜態成員嗎?
struct Form
{
// ...
~Form()
{
// access World here
}
static btDynamicsWorld *World;
};
有沒有辦法從另一個函數中初始化該靜態成員?
void ModulePhysics::Init()
{
// ...
btDynamicsWorld *Form::World = /* ... */;
}
我目前的代碼導致了這兩個編譯器錯誤。
錯誤1錯誤C2655: '表::世界':定義或重新聲明非法電流範圍
錯誤2錯誤C2086: 'btDynamicsWorld *表格::世界':重新定義
你確定,一個靜態成員是你想要的嗎?這對每個班級都是一樣的! – Sebastian
@Sebastian'struct'表示物理模擬中的剛體。 「世界」代表了許多物體之間物理交互的空間,只有一個實例存在。必須從破壞的世界中移除屍體,否則模擬會崩潰。如果有更好的方法來解決這個問題,我很樂意聽到它。 – danijar
你知道在一個struct中聲明一個變量static並不會爲它保留任何RAM,並且你需要在其他地方的第二個RAM聲明嗎? –