gpt4 book ai didi

c++ - 如何将对象名称保存为字符串

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

我想将我的对象名称保存为字符串。我可以用几行代码解释一下。

#include <iostream>
#include <string>
#include <stdio.h>

using namespace std;

class Example
{
public:
string object_name;
//code...
};

int main()
{
Example object;
cout<<object.object_name<<endl; //In this case the output should be "object", how to achieve this ?
return 0;
}

最佳答案

无法从对象内部访问变量名,因为它仅存在于源代码级别。你能做的最好的事情就是向构造函数提供对象的名称:Example object("object"),你甚至可以将它包装在宏中以避免重复:

#define CREATE_OBJECT(TYPE, NAME) TYPE NAME( #NAME )

CREATE_OBJECT(Example, object);

您应该因复制/移动对象而异,因为它会保留可能与复制名称无关的名称。您将不得不删除复制/移动构造函数,从而大大降低对象的实用性,并定义新的构造函数,这些构造函数采用现有对象和新名称并为其创建 COPY_OBJECT 宏。

即便如此,引用还是有问题...

TL;DR:通常不值得。

关于c++ - 如何将对象名称保存为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36766830/

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