gpt4 book ai didi

c++ - 如何检查一个结构是否有某个变量?

转载 作者:太空宇宙 更新时间:2023-11-04 15:01:45 25 4
gpt4 key购买 nike

所以我有以下两个结构。假设我有一个 void 指针,根据情况,它会指向 bag 或 apple。如何检查它指向的结构类型以便取消引用它?

struct product
{
int price;
string name;
};

struct fruit : product
{
int weight;
};

product bag;
fruit apple;

编辑:所以这只是我在新工作中使用的代码的简化版本。我需要检查某个变量,但就像水果中的重量变量一样,有时它是用一个空指针传递的,有时不是。已经有很多代码,所以从 void 指针更改它会太多。我需要检查权重变量是否存在,然后根据其中的值做一些事情。

最佳答案

不要在 C++ 中使用 void*。在客户端代码中使用 void* 作为真实数据对象几乎从来没有过。

在您的情况下,您需要使用product*,而不是void*,并声明product* virtual 的析构函数。这样您就可以使用 dynamic_cast 测试实际对象。

更好的选择是仔细设计您的类,引入适当的虚函数并确保您永远不需要知道对象的实际类型。但这是一个单独问题的主题。

关于c++ - 如何检查一个结构是否有某个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34949351/

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