gpt4 book ai didi

C++ union 用于存储特定于案例的数据

转载 作者:行者123 更新时间:2023-11-27 22:56:51 25 4
gpt4 key购买 nike

假设我为一个人存储数据。并且取决于它是男性还是女性,特定数据也将被存储。现在我应该使用 Union 来存储特定性别的部分吗?这是一个好的做法还是有更好的方法,尤其是使用 C++14?

最佳答案

Union 仅适用于基本类型,不适用于类。您的 union 中不能有 std::string。因此 union 在 C++ 中很少使用,而在 C 中使用较多。

在你的情况下,我会保持简单。最简单的方法是让所有数据成员都在同一个类中,无论性别如何,并且只使用正确的成员。

class Person
{
// common stuff
int age;
int height;

// female specific stuff
// ???

// male specific stuff
// ???
};

或者你可以像这样使用继承:

class Person {};
class FemalePerson : public Person {};
class MalePerson : public Person {};

并且只在相应的派生类中有性别特定部分。

关于C++ union 用于存储特定于案例的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31980533/

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