代码之家  ›  专栏  ›  技术社区  ›  Yevhen

常量成员

  •  1
  • Yevhen  · 技术社区  · 14 年前

    我在一些标题中定义了结构(d3dxvector3)

    如何申报:

    1. 该类型的类中的静态成员并初始化它?
    2. 可能是该类型的常量成员并初始化它?

    当我使用某个构造函数时,我得到了一个只有整数才能初始化的错误。

    4 回复  |  直到 14 年前
        1
  •  1
  •   ProgramMax    14 年前

    不能只修改已经存在的结构。这将是一个重新定义。不是好玩的东西。

    你可以像TGadfly建议的那样包装它。

        2
  •  1
  •   Prasoon Saurav    14 年前

    使用 initializer list 初始化常量成员。

    例如

    struct demo
    {
    
        const int x;
    
        demo():x(10)
        {
            //some code
        }
    
    };
    

    就初始化静态成员(在类内)而言(只有当静态成员是 const-static 整数)

    For example
    
    struct abc{
    
         static const int k=10; //fine
         static int p=10; //Invalid
         static const double r =2.3 //Invalid
          // ......
    
       };
    
      const int abc::k ; //Definition
    
        3
  •  1
  •   Konrad Rudolph    14 年前

    具有非- int 类型,使用以下构造:

    class foo {
        // Declarations:
        static Type1 field1; // or
        static Type2 const field1;
    };
    
    // Definitions and initializations:
    Type1 foo::field1 = value1;
    Type2 const foo::field2 = value2;
    
        4
  •  0
  •   Yevhen    14 年前

    在头文件中我声明

    class Bar_class
    {
      static const D3DXVECTOR3 foo;
    }

    在cpp文件中我写的

    const D3DXVECTOR3 Bar_class::foo =D3DXVECTOR3 (1,1,1);