Hi, I have created a base class who's constructor calls a pure virtual function I derive this class, implement the function, compile and receive this error message, "error: abstract virtual `IDXTYPE DataSet<DATA, IDXTYPE>::indexFxn(uint) [with DATA = float, IDXTYPE = float]' called from constructor"
Without context to my code basically reads, "error: abstract virtual function called from constructor" I know that it would not make sense for the base class to call a pure virtual function. However, this constructor is being called in response to a derived class of the base being initialized who defines the pure virtual function of the base. I can see how this error may happen if the constructor for the base class is called before the derived class at which time the pointer to the derived class' implementation of the base class' virtual function is not initialized (I don't know for sure if this is the order of what happens but it is my best educated guess). I don't see that this error is necessary, unless the derived class does not implement the pure virtual function of the base. Even if this were the case, the derived class could initialize the pointer table with it's implementation for the base class pure virtual function before the base class constructor call to the pure virtual function? Is this behaviour a cause of the C++ standard or is it specific to GCC? Thanks, -- Brad