MyClass.h
class MyClass
{
public:
static const int cTotalCars;
private:
int m_Cars[cTotalCars];
};
MyClass.cpp
#include "MyClass.h"
const int MyClass::cTotalCars = 5;
上述代码无法工作,因为m_Cars数组会显示“预期常量表达式”。
class MyClass
{
public:
static const int cTotalCars = 5;
private:
int m_Cars[cTotalCars];
};
上述方法可行,但我听说应该在CPP文件中,在类定义之外定义静态成员。我该怎么办?
void f(const int &);f(MyClass::cTotalCars);
- David Rodríguez - dribeasfloat
,但我没有注意到这是一个扩展。至于将变量用作_lvalue_,您当然也是正确的。 - rodrigo