/* Example programs from the book Scientific and Engineering Programming in C++: An Introduction with Advanced Techniques and Examples, Addison-Wesley, 1994. (c) COPYRIGHT INTERNATIONAL BUSINESS MACHINES CORPORATION 1994. ALL RIGHTS RESERVED. See README file for further details. */ #include "examples/ch11/ArrayxD.h" template class RigidArray2d : public virtual Array2d { public: virtual Dimension dim() const { return 2; } virtual Subscript shape(Dimension d) const { return (d == 0) ? n0 : n1; } virtual const T& operator()(Subscript i, Subscript j) const { return data[i][j]; } virtual T& operator()(Subscript i, Subscript j) { return data[i][j]; } virtual Array2d& operator=(const Array2d&); virtual Array2d& operator=(const T&); private: T data[n0][n1]; }; void f() { RigidArray2d a; const int nrows = 3; RigidArray2d b; }