C++重載運算符

返回類型 operator 運算符(參數列表){

}

一般的一元運算符->一個參數,二元運算符->兩個參數

若運算符函數是成員函數,則第一個運算對象隱式綁定到this指針


例:

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXM 1010
typedef struct Matrix{
    int n,m;
    int a[MAXM][MAXM];
    void clear(){
    n=m=0;
    memset(a,0,sizeof(a));
    }
    Matrix operator +(const Matrix &b){
    Matrix temp;
    temp.n=n;
    temp.m=m;
    int i,j;
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
        temp.a[i][j]=a[i][j]+b.a[i][j];
        }
    }
    return temp;
    }
}MX;
int main()
{
    printf("exe here\n");
    MX matrix1,matrix2;
    matrix1.n=2;
    matrix1.m=3;
    matrix1.a[0][0]=0;
    matrix1.a[0][1]=1;
    matrix1.a[0][2]=2;
    matrix1.a[1][0]=0;
    matrix1.a[1][1]=1;
    matrix1.a[1][2]=2;
    matrix2.n=2;
    matrix2.m=3;
    matrix2.a[0][0]=0;
    matrix2.a[0][1]=1;
    matrix2.a[0][2]=2;
    matrix2.a[1][0]=0;
    matrix2.a[1][1]=1;
    matrix2.a[1][2]=2;
    MX temp;
    temp=matrix1+matrix2;
    int i,j;
    for(i=0;i<2;i++){
        for(j=0;j<3;j++){
        printf("a[%d][%d]=%d\n",i,j,temp.a[i][j]);
        }
    }
    return 0;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章