zoukankan      html  css  js  c++  java
  • c++操作符重载

    #include "stdafx.h"
    class A{
    public:
    int test;
    A(int j=0){
    test=j;
    }
    //操作符重载基本格式 返回值+ 关键字+opereator+重载符号+(){}
    //实质上这是完全类似于函数的 只不过函数名改为了opreator
    //本质上还是成员函数 还是要守候成员函数的规矩
    int operator <<(int j){
    return j;
    }
    A operator +(A j){
    A c;
    c.test=this->test+j.test;
    return c;
    }
    //最少两个参数的 并且还要有一个类的对象参数 或者enum类型的
    friend int operator<(A a,int j);
    };
    int operator<(int j,A a){
    return a.test+j;
    }

    //重载一般都是友元和成员函数两种方式
    int _tmain(int argc, _TCHAR* argv[])
    {
    //重载函数的调用方式 当然这是一种比较笨拙的调用方式
    A a(3),b(3);
    int j=a.operator<<(1);
    printf("成员函数的值为:%d ",j);

    //下面我们再来看一列重载
    A c=a.operator+(b);
    printf("in therory c.test is 6 : c.test is %d ",c.test);

    //看看友元函数的调用 友元函数的调用只能采取 参数1 + 操作符 +参数2 方式进行调用 顺序不能错 三目的就按三目的顺序来
    int p=1<(a);
    printf("in theroy p is 4: p is %d ",p);

    //对于比较简约的调用方式 核心思想就是去掉.opereator() 换言之就是 对象+操作符+参数的模式
    A m=a+b;


    while(1);
    return 0;
    }
    /*

    终结一下 (1)操作符重载一般只有两种形式,成员重载,友元函数重载
    (2) 操作符重载函数的调用方式对成员函数来说有两种 1:通过成员函数来调用 2,:通过简约式来调用
    对于友元函数就是 更具参数 + 运算符 +参数的模式调用

    */

  • 相关阅读:
    bzoj3946
    bzoj3065
    bzoj1500
    bzoj1233
    bzoj1089
    bzoj1087
    bzoj1086
    if语句之猜拳
    if语句判断闰年、平年
    if语句判断身高体重是否标准
  • 原文地址:https://www.cnblogs.com/enjoyall/p/5460223.html
Copyright © 2011-2022 走看看