gpt4 book ai didi

c++ - 我可以使用先前设置的变量来创建下一个类成员吗?

转载 作者:行者123 更新时间:2023-11-30 04:49:15 25 4
gpt4 key购买 nike

我正在尝试更好地理解构造函数在 C++ 中的工作方式。基本上,我想知道在构造函数中使用成员初始化列表初始化类时,是否一切都按顺序设置。

Constructor(int number1, int number2) : 
m_number1(number1),
m_number2(m_number1 > 0 ? 0 : number2)
{
}

我希望这是一个有效的机制,但在某些特殊情况下它可能不起作用。

最佳答案

非静态成员初始化的顺序由它们在类定义中出现的顺序决定。这与这些成员在构造函数初始化列表中的列出顺序无关。

你的例子;

Constructor(int number1, int number2) : 
m_number1(number1),
m_number2(m_number1 > 0 ? 0 : number2)
{
}

如果 m_number2 出现在类定义中的 m_number1 之前,将不会像您期望的那样工作。

如果类定义得到更新,依赖特定顺序可能会有风险 - 因为更新会改变非静态成员在类声明中出现的顺序(例如,如果某些团队成员决定成员更符合逻辑地分组在不同的方式)。

关于c++ - 我可以使用先前设置的变量来创建下一个类成员吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55510301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com