gpt4 book ai didi

C++ - 使用 std::string 的内容调用同名的类实例

转载 作者:太空狗 更新时间:2023-10-29 23:36:12 25 4
gpt4 key购买 nike

我正在尝试使用存储在 std::string 中的值来调用同名的类实例,例如:

class myClass{int x;}

myClass hello;
std::string myString = "hello";

然后通过这样做:

myClass* pleaseWork = myString*;

我希望我可以这样做:

std::cout << pleaseWork&.x;

我只是想知道这是否真的可行,或者是否有像这样的关键字

changeToClass(<string>, <classToBeTurnedInto>)

谢谢!

编辑

抱歉,如果我没有说得太清楚,但我想做的是调用一个名称存储在字符串中的类 - 所以如果 myString 包含“hello”,我正在尝试调用一个名为“你好”通过使用实际的字符串。这个的实际使用涉及将 class1 的类传递给 class2 的类,但只能通过从文件中读取它们来知道要传递哪些类(只能读取为 char[] 或 std::string)。

有点像this ,我不确定如何在 C++ 中执行此操作。

最佳答案

将字符串映射到类是完全可能的:

std::map<std::string, MyClass*> map;

然后在 map 中查找字符串。问题是如何指向对象的指针进入 map 。你必须初始化手绘 map ;更重要的是,你必须确保对象的生命周期,确保将其从 map 中删除在它被破坏之前。

在很多情况下,你可以让你对对象的所有使用都去通过 map 。在这种情况下,您可以使用

std::map<std::string, MyClass> map;

(没有指针):对象被直接构造到 map ,并通过在 map 上调用 erase 来销毁。 (这在某种程度上,是另一种类型的动态分配。除了那个您使用字符串而不是指针来寻址对象。)

关于C++ - 使用 std::string 的内容调用同名的类实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19501884/

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