友元函数重载"<<",">>“和”+"运算符的方法*
友元函数声明形式就是将 friend 冠于一个类中函数原型之前,则该函数成为该类的友元函数,友元函数不受声明位置private,protectd的影响。在类外对与原函数进行定义时不需要加friend(和普通函数一样)。注 友元函数不是类的成员。
举个小例子:
有两个均为3行3列的矩阵ml和m2,求两个矩阵之和。重载运算符“+”、“>>”和“<<”,使之能用于矩阵相加、输入和输出。
#include "pch.h"
#include <iostream>
using namespace std;
class Matrix //定义一个矩阵类
{
public:
Matrix() {}; //构造函数
~Matrix() {}; //析构函数
friend istream & operator >>(istream & in, Matrix &m); //重载运算符">>"
friend ostream & operator <<(ostream & out, Matrix &m); //重载运算符"<<"
friend Matrix operator +(Matrix &m1, Matrix &m2); //重载运算符"+"
private:
int a[3][3]; // 3*3的矩阵
};
istream & operator >>(istream & in, Matrix &m)
{
for (int i = 0; i < 3; i++)
{
for (int j &#