// // This file contains the C# code from Program 4.9 of // "Data Structures and Algorithms // with Object-Oriented Design Patterns in C#" // by Bruno R. Preiss. // // Copyright (c) 2001--2002 by Bruno R. Preiss, P.Eng. All rights reserved. // // http://www.brpreiss.com/books/opus6/programs/pgm04_09.txt // public abstract class Matrix { public abstract double this[int i, int j] { get; set; } public abstract int Rows { get; } public abstract int Columns { get; } public abstract Matrix Transpose { get; } public abstract Matrix Plus(Matrix matrix); public abstract Matrix Times(Matrix matrix); public static Matrix operator +(Matrix m1, Matrix m2) { return m1.Plus(m2); } public static Matrix operator *(Matrix m1, Matrix m2) { return m1.Times(m2); } // ... }