From: Christopher S. <cs...@ma...> - 2009-03-27 16:04:04
|
Søren Gammelmark wrote: > I tried inheriting like this: > > class Tensor : public Array<double, 3> > { > public: > Tensor(int d1, int d2, int d3) : Array<double, 3>::Array<double, > 3>(d1, d2, d3, fortranArray) {} > ~Tensor() {} > }; > > Although seeming nice initially I did not know that C++ does not > automatically inherit constructors or assignment operator > overloadings. At least if do the above and try You're on the right track. You won't be able to do too much about the constructors, but the operator= is an easy fix: class Tensor : public Array<double,3> { public: Tensor(int d1, int d2, int d3) : Array<Double,3>::Array<double,3>(d1,d2,d3,fortranArray) {} ~Tensor() {} /* NEW */ using Array<double,3>::operator=; } C++ allows inheritance of operator= via that syntax, it just doesn't do so by default. |