I have a constant int variable in my base class, and I would like to initialize responding one in my derived class, with different value (taken as a parameter), is this possible?
Here's what I did:
// Base.h (methods implemented in Base.cpp in the actual code)
class Base {
public:
Base(const int index) : m_index(index) {}
int getIndex() const { return m_index; }
private:
const int m_index;
};
// Derived.h
class Derived : public Base {
public:
Derived(const int index, const std::string name) : m_name(name) {}
void setName(const std::string name) { m_name = name; }
std::string getName() const { return m_name; }
private:
std::string m_name;
};
But obviously it's asking me for Base::Base()
which doesn't exist, and if I define it, I will have to give default value for m_index
, which I don't want to do. Do I have to define const int m_index
separately in every derived class?
Similiar question, but I'm not sure if the static affects this in any way: C++ : Initializing base class constant static variable with different value in derived class?