快乐的编码员!
我计划今天尝试学习一些 C++,所以我想我可以从以前的课程中学习一个旧的 C 作业,然后用 C++ 做同样的事情。任务是读取音乐文件并从他们的 ID3 标签中检索数据,并根据他们的艺术家、专辑和曲目标题等将它们分类到文件夹中……这并不重要,但你至少知道我要做什么。
所以我玩了一些集合,让我的程序接收一个字符串数组,指定不同的歌曲,它将循环算法。
在下一步中,由于我如何尝试复制旧 C 程序的行为,我被卡住了,该程序是一个包含三个值的结构:
int size;
char *tag_name;
char *data;
但到目前为止,我一直无法在 C++ 中重新创建这种动态行为,我希望只定义成员但不初始化成员,因为我希望以后能够更改这些数据。从技术上讲,我可以通过在创建标签之前从文件中获取数据的方式来做到这一点,因此给构造函数它们的初始值并完成它。但是我可以按照我想要的方式去做吗?
class Tag {
public:
std::string name;
std::string data;
int size;
Tag() {}
Tag(std::string n, std::string d, int s) : name(n), data(d), size(s) { }
void setData(std::string data) { this.data = data }
};
因为我已经尝试了十亿个指针组合和诸如此类的东西(谷歌加载),所以我刚刚回到上面并决定问你如何实际完成这个。
我的脑子完全糊涂了,但考虑一下上面的伪代码,因为我敢打赌它在任何方面都不正确......
所以我的问题是:如何定义一个类,以便为成员名称和数据获得动态字符串分配?我几乎在考虑使用一些好的旧 char*,但我尝试这样做的目的是学习一些 C++,所以我现在强迫自己经历这个。