我在某个标题中定义了结构(D3DXVECTOR3)
我如何声明:
当我使用一些构造函数时我得到的错误只有整数可以初始化。
答案 0 :(得分:1)
使用initializer list初始化const成员。
例如
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
答案 1 :(得分:1)
您不能只修改已存在的结构。这将是一次重新定义。不好玩的东西。
你可以像TGadfly建议一样包装它。
答案 2 :(得分:1)
要拥有非int
类型的静态成员,请使用以下构造:
class foo {
// Declarations:
static Type1 field1; // or
static Type2 const field1;
};
// Definitions and initializations:
Type1 foo::field1 = value1;
Type2 const foo::field2 = value2;
答案 3 :(得分:0)
在头文件中我声明了
class Bar_class
{
static const D3DXVECTOR3 foo;
}
在cpp文件中我写了
const D3DXVECTOR3 Bar_class::foo =D3DXVECTOR3 (1,1,1);