gpt4 book ai didi

c++ - 簿记 vs 使用指针检查成员变量是否已初始化

转载 作者:行者123 更新时间:2023-11-28 06:58:01 24 4
gpt4 key购买 nike

我有一个 Action 类,它为我的每个设备输入类型保存一个成员变量。它们在构造后被初始化,但我不保证它们会被初始化。

class Action
{
private:
KeyboardButton mKeyboardButton;
MouseButton mMouseButton;
JoystickButton mJoystickButton;
}

问题是这三个类没有提供验证它们是否已初始化的方法。我可以做一些簿记并存储一个 bool 值。但是,这似乎容易出错。我可以让它们成为指针,然后比较 verse nullptr。但是,除非必要,否则我总是避免指点。

我建议的两种方法之间的权衡是什么?

最佳答案

我将假设每个 Action需要它自己的 Keyboard 实例, MouseJoystick ,因为如果你想在 Action 之间共享它们s 你将不得不使用指针。所以问题是 - 有一个 Action 有意义吗?这三个中至少有一个未初始化?

如果答案是“否”- 每个 Action必须拥有所有这三个 - 你可以在 Action' 中初始化它们s 的构造函数,永远不用担心它们没有被初始化。

如果答案是"is"——使用指针!如果您确保在构造函数中分配初始化或使它们无效,则在复制构造函数和赋值运算符重载中克隆它们,并到 delete它们在析构函数中 - 应该没有任何问题!

附言。我假设每个 Action需要它自己的三个实例,但如果可以共享它们并且您不会仅仅因为不喜欢指针就这样做,您应该考虑与指针共享它们。

关于c++ - 簿记 vs 使用指针检查成员变量是否已初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22907681/

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