I have code with the following layout: Code: class Table { protected: // variables for all subclasses public: Table(int sizeOfTable); } Table::Table(int capacity) { sizeOfTable = capacity // initialise other variables } class roundTable: public Table { public: roundTable(int capacity) : Table (capacity){} //declare subclass variables } Now, the problem I have is that I have a number of variables that need initialising(in a function) for each subclass, and I want this function to only be called once, as the subclass is constructed. I have found out (the hard way) that I cannot simply put a virtual function in the constructor for 'Table'. However, I cannot seem to find any alternative to this, I have looked at passing values up from the derived class but this doesn't seem to fit my problem at all. Is there an easy way around this or am I looking at this problem the completely wrong way? I can easily create an initialisation function in the subclass and call it in the main method, but I'm hoping there is a way to do it as I have described above. Any help is much appreciated.