0
因此,這裏是我的問題,即時嘗試學習一些代碼,我只是在玩變化和探索一些新的寫法,但我意識到如果聲明與{是不是最後一個變量,它不工作,(如果我改變m_belowScene和m_overscene的地方它的工作壽)。在構造函數中初始化變量的正確順序
我的修改:
SceneManager::SceneManager()
: m_scene(std::make_shared<PolyGraphicNode>()),
m_cplSign(std::make_shared<CPLSymbol>(0.05, 0.2, 0.5)),
m_belowScene(std::make_shared<PolyGraphicNode>()){
std::shared_ptr<CPLSymbol> symbol = std::make_shared<CPLSymbol>(0.01, 0.04, 0.1, CPL_NODE);
m_belowScene->append(symbol);
}
m_overScene(std::make_shared<PolyGraphicNode>());
的正確方法是這樣的
SceneManager::SceneManager()
: m_scene(std::make_shared<PolyGraphicNode>()),
m_cplSign(std::make_shared<CPLSymbol>(0.05, 0.2, 0.5)),
m_overScene(std::make_shared<PolyGraphicNode>()),
m_belowScene(std::make_shared<PolyGraphicNode>()){
std::shared_ptr<CPLSymbol> symbol = std::make_shared<CPLSymbol>(0.01, 0.04, 0.1, CPL_NODE);
m_belowScene->append(symbol);
}
初始化列表的結束位置構造的身體開始。你不能混合起來 – user463035818
聲明的順序,而不是(!)初始化程序列表中的順序是相關的 –