gpt4 book ai didi

c++ - 包含类对象的最佳 C++ 设计是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:19:40 25 4
gpt4 key购买 nike

我有一个包含许多对象的类,我想将这些对象分组到某种类型的容器中,并使用某种类型的标识符访问它们。

class Menu {
Object title;
Object play;
Object instructions;
Object pause;
...
};

将每个对象都列在类中(如上所示)很好,因为我可以像 menu.title 一样访问它们,但是我必须重新键入每个名称才能将其添加到容器中,vector.push_back(标题)

下面显示的是我一直以来解决问题的方法。我使用枚举的整数值来访问相应的索引。 objects[TITLE]objects[PLAY]

class Menu {
std::vector<Object> objects;
};

enum ObjectTypes {
TITLE, PLAY, INSTRUCTIONS, PAUSE, ...
};

我通常不喜欢这种方法,因为它似乎是间接的,并且在使用嵌套类和枚举时,标识符会变得又长又麻烦。我来自 C,对 C++ 有点陌生。有没有人有更实用和/或更优雅的方法来解决这个问题?欢迎使用 C++11 及更高版本!

最佳答案

您使用的方法很好。如果你想避免繁琐的标识符,你可以做一个临时引用来让事情更简洁。例如,而不是调用:

menu.objects[PAUSE].foo();
menu.objects[PAUSE].bar();
menu.objects[PAUSE].baz();

...必要时您可以这样做:

Object & pause = menu.objects[PAUSE];
pause.foo();
pause.bar();
pause.baz();

它的工作原理是一样的,但没有所有多余的字符。

关于c++ - 包含类对象的最佳 C++ 设计是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28258633/

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