【问题标题】:Create a enum/structure of strings in c++在 C++ 中创建字符串的枚举/结构
【发布时间】:2014-06-10 00:24:54
【问题描述】:

下午好,

我正在寻找一种方法来在 c++ 中实例化和定义一堆不同的字符串变量,并将它们分组到一个数据结构中,很像枚举数据类型,但带有字符串。

在 C++ 中有没有一种好方法可以做到这一点,我不希望创建一个字符串数组,而是希望每个字符串都有一个单独的名称,以及一个父数据结构。

这就是我想要实现的目标

somestructuretype MyData {
    string alpha = "this is string A";
    string bravo = "this is string B";
    string charlie = "this is string C";
};

所以我可以像这样调用这些字符串:

字符串 temp = MyData.alpha;

我知道这在 c# 中是可能的,这在 C++ 中是否可能

谢谢, -D

【问题讨论】:

  • 您是否需要将它们一起传递(例如,如果您计划有几个相似的结构,它们的字段具有不同的值)?

标签: c++ string struct enums


【解决方案1】:

我相信您正在寻找一种组织一组相关字符串的方法。您可以考虑使用命名空间,而不是寻找数据结构。

例子:

namespace MyData {
    static const string alpha = "this is string A";
    static const string bravo = "this is string B";
    static const string charlie = "this is string C";
};

你会像这样访问它:

string temp = MyData::alpha;

【讨论】:

  • +1 值得注意的是,static 方法在单个翻译单元中使用字符串时非常有用,但如果您希望它们在稍后将链接的多个翻译单元中使用,您希望在没有构造函数值的标头中使用非static 声明,以及使用它们的值定义变量的单独实现文件....
【解决方案2】:

只需在构造函数中初始化值。

somestructuretype{
   string alpha, bravo, charlie;

   somestructuretype(){
      alpha = "this is string A";
      bravo = "this is string B";
      charlie = "this is string C";
   };
};

但是请注意,您必须在使用它们之前创建一个somestructuretype 对象。如果您不想这样,请将它们声明为static

【讨论】:

    猜你喜欢
    • 2016-01-16
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    相关资源
    最近更新 更多