C++ 计算特殊符号的语法

C++ 计算特殊符号的语法,c++,C++,你好,我想知道这是什么意思,这是什么符号 fakecalss f1("getName", Type::STRING, AC::PUBLIC); 我知道它正在调用假类的构造函数,但是Type::STRING是什么意思?这是如何实现的?Type和AC是任何命名的作用域(如果没有看到它们的声明,就不可能对其进行详细说明;每个可能是名称空间、类类型或枚举类,或者可能是具有关联作用域的类型的typedef)STRING是名为Type的作用域中的名称(可能是常量),PUBLIC是名为AC的作用域中的名称(

你好,我想知道这是什么意思,这是什么符号

fakecalss f1("getName", Type::STRING, AC::PUBLIC);

我知道它正在调用假类的构造函数,但是Type::STRING是什么意思?这是如何实现的?

Type
AC
是任何命名的作用域(如果没有看到它们的声明,就不可能对其进行详细说明;每个可能是名称空间、类类型或枚举类,或者可能是具有关联作用域的类型的typedef)
STRING
是名为
Type
的作用域中的名称(可能是常量),
PUBLIC
是名为
AC
的作用域中的名称(可能是常量)

当然,所有这些都是在假设这些都不是宏的情况下进行的

有几种可能性都会使
Type::STRING
成为合法的代码(具有不同的语义,出于说明目的,我还添加了另一个值
Type::INTEGER
):

  • 命名空间中的正常常量:

    namespace Type
    {
      int const STRING = 0;
      int const INTEGER = 1;
    }
    
    namespace Type
    {
      enum foo { STRING, INTEGER };
    }
    
  • s命名空间中的正常枚举:

    namespace Type
    {
      int const STRING = 0;
      int const INTEGER = 1;
    }
    
    namespace Type
    {
      enum foo { STRING, INTEGER };
    }
    
  • 结构中的静态常量:

    struct Type
    {
      static int const STRING = 0;
      static int const INTEGER = 1;
    };
    
    struct Type
    {
      enum { STRING, INTEGER };
    };
    
  • 结构中的普通枚举:

    struct Type
    {
      static int const STRING = 0;
      static int const INTEGER = 1;
    };
    
    struct Type
    {
      enum { STRING, INTEGER };
    };
    
  • 仅限C++11及更高版本:枚举类:

    enum class Type { STRING, INTEGER };
    

请注意,此列表并非详尽无遗。

好吧,我们不知道
类型是什么。它是在代码中的某个地方定义的,您还没有展示给我们。一旦找到
类型
,就可以找到
字符串
的嵌套声明。它可能是枚举类类型吗?我的一个代码中有类似的内容。右键单击fakeclass,选择go to declaration,将代码粘贴到此处。您好,我想了解更多有关如何创建名称常量的信息。问题是,我必须创建一个代码,让它能够工作。因此,正如你所看到的,我也有同样的困惑。非常感谢。我想知道如何在不使用数组、向量或列表的情况下存储对象。如果可能的话。