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
声明的顺序,而不是(!)初始化程序列表中的顺序是相关的 –