'variable' : only const static integral data members can be initialized inside a class or struct
You attempted to initialize a nonstatic data member.
The following sample generates C2864:
// C2864.cpp
class B {
int i = 3; // C2864;
// try ...
// static const int i = 3;
};
The following sample generates C2864:
// C2864b.cpp
// compile with: /LD
#include <stdio.h>
class BaseCls
{
public:
int Z;
};
class DervCls : public BaseCls
{
public:
char Z;
};
class UseClasses
{
public:
BaseCls * BObj = new DervCls; // C2864
DervCls * DObj = new DervCls; // C2864
// try the following lines instead
// BaseCls * BObj;// = new DervCls; // C2864
// DervCls * DObj;// = new DervCls; // C2864
void ShowZ()
{
// also uncomment these lines
// BObj = new DervCls;
// DObj = new DervCls;
printf("Accessed via base class: %d", BObj->Z);
printf("Accessed via derived class: %c", DObj->Z);
}
};