I want static variables in derived classes, so I want to make some stuff in a base class. Base class would be virtual. Is it possible?
class Base {
public:
static const int x;
void f() {
return x;
}
virtual void g() = 0;
};
class Derived1 : virtual Base {
public:
void g() {}
};
const int Derived1::x = 1;
class Derived2 : virtual Base {
public:
void g() {}
};
const int Derived2::x = 2;
...
Derived1 a;
Derived2 b;
a.f() == 1; // should be true
b.f() == 2; // should be true