• 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,:通过简约式来调用
    对于友元函数就是 更具参数 + 运算符 +参数的模式调用

    */

  • 相关阅读:
    玩转 CSS3 3D 技术
    什么是网站劫持?
    html5 播放 rtsp
    display:none和visibility:hidden两者的区别
    css中div透明度有几种方法设置?
    前端有架构吗?
    HTML a标签打开新标签页避免出现安全漏洞,请使用“noopener”
    写给刚入门的前端工程师的前后端交互指南
    为什么会出现CSS前缀?
    cookies和session得一些理解
  • 原文地址:https://www.cnblogs.com/enjoyall/p/5460223.html
Copyright © 2020-2023  润新知