#include class Matrix3 { public: float A[3][3]; }; void PrintMatrix3(Matrix3 M) { int i, j; for (i = 0; i < 3; i=i+1) { for (j = 0; j < 3; j=j+1) cout << M.A[i][j] << "\t"; cout << endl; } } class Vector3 { public: float x[3]; }; void PrintVector3(Vector3 v) { int i, j; for (i = 0; i < 3; i=i+1) cout << v.x[i] << "\t"; cout << endl; } Vector3 operator*(Matrix3 &M, Vector3 &v) { Vector3 z; int i, j; for (i = 0; i < 3; i=i+1) z.x[i] = 0; for (i = 0; i < 3; i=i+1) for (j = 0; j < 3; j=j+1) z.x[i] = z.x[i] + M.A[i][j]*v.x[j]; return z; } int main(int argc, char *argv[]) { int i, j; Matrix3 M1; Vector3 v1, v2; for (i = 0; i < 3; i=i+1) for (j = 0; j < 3; j=j+1) M1.A[i][j] = i + j; PrintMatrix3(M1); cout << endl; for (i = 0; i < 3; i=i+1) v1.x[i] = i + 10; PrintVector3(v1); cout << endl; v2 = operator*(M1, v1); PrintVector3(v2); cout << endl; for (i = 0; i < 3; i=i+1) v1.x[i] = i + 20; PrintVector3(v1); cout << endl; v2 = M1 * v1; PrintVector3(v2); cout << endl; }