wallis@labc.enet.dec.com (Barry L. Wallis) (10/04/90)
Is there any way to initialize derived class members before calling the base class constructor? I understand that the ARM states that, "First, the base classes are initialized in declaration order (independent of the order of _mem-initializers_), then the members are initialized in declaration order (independent of the order of _mem-initializers_)..." Consider the following simplified code segment: class Base { public: Base(istream sinput, ostream soutput) : input(in), output(out) { /* ... */ } private: istream input; ostream output; } class Derived : public Base { public: Derived(char* inf, char* outf) // This following initialization won't work : infile(inf), outfile(outf), Base(inf, outf) { /* ... */ } private: ifstream infile; ofstream outfile; } The only way I can see to solve this would be to make a Base object which is a member of Derived rather than inherit Base. Is there a way around this which will allow me to use inheritance (like initializing Base in the body of the constructor)? --- Barry L. Wallis USENET: wallis@labc.dec.com Database Consultant Prodigy (don't laugh): DNMX41A U.S. DECtp Resource Center DECUServe: EISNER::WALLIS (not on the net yet) Los Angeles, CA "No one voted for me, I represent myself" ---