Nella mia classe base ho una variabile int costante e mi piacerebbe inizializzarne la risposta nella mia classe derivata, con un valore diverso (preso come parametro), è possibile?C++ Inizializza la classe base 'const int nella classe derivata?
Ecco quello che ho fatto:
// 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;
};
Ma ovviamente mi sta chiedendo Base::Base()
che non esiste, e se io definisco, mi dovrà dare valore predefinito per m_index
, che non mi voglio fare. Devo definire const int m_index
separatamente in ogni classe derivata?
domanda simile, ma non sono sicuro se la statica influenza questo in alcun modo: C++ : Initializing base class constant static variable with different value in derived class?
CHE COSA?!? Ho fatto C++ per 3 o 4 anni o qualcosa del genere, e non mi sono mai imbattuto in questo? Ho sempre pensato di dover usare il costruttore predefinito ... Grazie amico, accetterò tra un minuto. –