当前位置:  开发笔记 > 编程语言 > 正文

使用变量来确定struct成员

如何解决《使用变量来确定struct成员》经验,为你挑选了1个好方法。

在我的代码中,我使用了以下结构的多个结构:

struct Track {
    string artist;                      
    string cd;                          
    // etc....  
};

结构可以被称为:Track1,Track2等.
我正在尝试创建一个函数,它使用一个变量来确定它应该输出哪个成员.
例如:

string x ="cd"                                
cout << Track1.x << endl;

我无法弄清楚如何做到这一点......我不断得到'x'不是Struct的成员的错误.

感谢您花时间阅读本文,希望您能帮助我.



1> Lightness Ra..:

C++不是一种脚本语言,所以你不能像那样做"变量变量".

通常的方法是使用地图代替:

std::map myValues;

那么以下是相同的:

std::cout << myValues["cd"] << std::endl;

std::string x = "cd";
std::cout << myValues[x] << std::endl;

但是,我质疑你的设计.看起来轨道具有固定数量的属性,因此单个成员有意义,而不是可以添加和删除元素的地图.您可以限制对地图的访问并编写代码,以确保其始终存储所有轨道属性(而不是其他任何内容).

但我建议首先重新考虑"变量变量"的需求.将字符串传递给函数以确定其语义似乎不是特别有效,强大或有弹性.为什么不返回对整个Track对象的引用,然后调用者可以检查他们想要的任何属性?

std::cout << getTrack(arguments...).cd << std::endl;

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有