gpt4 book ai didi

c++ - 从指针 C++ 获取对象

转载 作者:行者123 更新时间:2023-11-30 02:15:07 26 4
gpt4 key购买 nike

我有一个对象 vector (DimensionItem),我想将另一个项目推送到 vector 中。我只有一个指向我希望推送的对象的指针。如何从指针获取对象。

(指针的新手,很可能我从根本上误解了某些东西)

DimensionItem *selected_Item = dynamic_cast<DimensionItem*>(g_items[i]); //g_items is a list of items taken from my scene

vector<DimensionItem> DimItems;
DimItems.push_back(selected_Item);

错误信息是:

没有用于调用“std::vector::push_back(DimensionItem*&)”的匹配函数

最佳答案

你可能想要:

DimensionItem& selected_Item = dynamic_cast<DimensionItem&>(*g_items[i]); // Throws if g_items[i] is not DimensionItem.
vector<DimensionItem> DimItems;
DimItems.push_back(selected_Item); // Stores a copy of selected_Item.

dynamic_cast<DimensionItem*>(g_items[i])如果 g_items[i] 则返回空指针不是 DimensionItem ,因此代码需要在取消引用之前检查指针是否为 null。

dynamic_cast<DimensionItem&>(*g_items[i])在这种情况下抛出异常。

关于c++ - 从指针 C++ 获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56597665/

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