为了账号安全,请及时绑定邮箱和手机立即绑定
  • 类 old(*this); this->m_iX++; this->m_iY++; return old; 是返回old
    查看全部
  • 后置++是类 operator++(int);没有&符号
    查看全部
  • 运算符重载的时候可以用this指针,也可以不用 定义的时候使用引用的好处:取了一次负号,可以再取负号,即为可以多次取用 友元函数的重载,后面的括号内,一定要填写东西,普通函数的重载可以不写 一元运算符重载 一.成员函数的负号运算符重载 1.声明部分:因为每次取反后返回的坐标(即对象)是它本身,所以此重载在类中要用引用去声明;//Coordinate& operator-(); 2.定义部分:就是对其坐标取负值赋给本身,返回this指针指向的值(默认指针参数this指向部分) Coordinate&Coordinate::operator-() { m_iX=-m_iX或this->m_iX=-(this->m_iX); m_iY=-m_iY或this->m_iX=-(this->m_iY); return *this; } 3.调用部分:实例化一个对象,对对象取反(其实是调用负号运算符重载),然后打印出来; 例:Coordinate coor(1,3); cout<<coor.getX()<<","<<coor.getY()<<endl;//打印出横纵坐标 -coor;//其实是调用运算符重载coor.operator-();//因为采用引用可以二次取反,负负得正 -(-coor); cout<<coor.getX()<<","<<coor.getY()<<endl;//打印出取反后的横纵坐标 4.无运算符重载时,不能对对象取反(因为计算机不能识别负号) 二.友元函数的负号运算符重载 1.声明部分:要用friend关键字,参数原本是默认参数this指向部分,此时也可实例化一个对象或引用//friend Coordinate& operator-(Coordinate &c); 2.定义部分:不用类的作用域标识符::(因为友元函数是独立于类外的),且此时this变成对象c; Coordinate&operator-(Coordinate& c) { c.m_iX=-c.m_iX; c.m_iY=-c.m_iY; return c; } 3.调用部分:同上
    查看全部
  • -(负号)的重载:友元函数重载,成员函数重载。 成员函数重载:class{Coordinate& operator-();} Coordinate & Coordinate::operator-(){m_ix=-m_ix;m_iy=-m_iy; return *this;} Coordinate coor1(3,5) -coor1;//coor1.operator-(); 友元函数重载: class{friend Coordinate& operator-(Coordinate &coor);} Coordinate& operator-(Coordinate &coor){coor.m_ix=-coor.m_ix;coor.m_iy=-coor.m_iy; return *this;} -coor1;//operator-(coor1); ++的前置重载:class{ Coordinate& operator++();} Coordinate& Coordinate::operator++(){m_ix++;m_iy++; return *this;} ++coor1;//coor1.operator++(); ++的后置重载:class{ Coordinate operator++(int);} Coordinate operator++(int){ Coordinate old(*this); m_ix++;m_iy++; return old;} coor1++;//coor1.operator++(0);
    查看全部
  • 友元函数重载 friend 类&operator-(类&p);
    查看全部
  • 先写类&类::operator-();
    查看全部
  • 成员函数重载
    查看全部
  • 一元运算符只和一个操作数有关,如-1,而1+1就是二元
    查看全部
  • 成员函数后加const,就相当于给隐形的this指针加const. 2.静态成员函数后不能加const修饰. 静态函数不能调用费静态成员,如普通数据成员
    查看全部
  • /*静态成员是类的成员,不是对象的成员; *静态成员函数不能直接访问非静态函数,普通成员函数可以调用静态函数。 *静态成员函数访问静态数据成员的方法:类名::静态成员名 || 对象名.静态成员名 || 对象指针->静态成员名 *静态成员函数没有this指针
    查看全部
    0 采集 收起 来源:[C++]静态

    2018-03-22

  • 原来非静态函数 会传入一个隐形的 this指针!!学习了。 静态函数没有this指针 所以无法使用非静态成员。
    查看全部
    0 采集 收起 来源:[C++]静态

    2017-02-20

  • /*静态成员是类的成员,不是对象的成员; *静态成员函数不能直接访问非静态函数,普通成员函数可以调用静态函数。 *静态成员函数访问静态数据成员的方法:类名::静态成员名 || 对象名.静态成员名 || 对象指针->静态成员名 *静态成员函数没有this指针 说的简单点静态的就是类全局的,只是定义一个全局变量的话,变量和类的关系没办法令人一目了然
    查看全部
    0 采集 收起 来源:[C++]静态

    2018-03-22

  • 声明友元格式如下(B是A的友元) class B; class A { friend B; ... }
    查看全部
  • 定义friend void display(Coordinate &p); 显示void display(Coordinate &p); 实例化Coordinate对象Coordinate p(3,4);这里的实例化对象是从栈中实例化的,所以需要这样写 Coordinate coor(num1,num2); 调用display函数void display(p);指针
    查看全部
    0 采集 收起 来源:单元巩固

    2018-03-22

  • 友元函数的参数列表必须是类的对象、引用或指针 友元函数的括号内一定要有东西 传入对象的引用,函数的声明和定义写法:void display(Coordinate &coor)
    查看全部
    0 采集 收起 来源:单元巩固

    2018-03-22

举报

0/150
提交
取消
课程须知
学习本课程需要有一定的C语言和C++语言基础。如基础不太扎实的同学可以,参与C++远征攻略的学习计划,友情链接 http://www.imooc.com/course/programdetail/pid/42
老师告诉你能学到什么?
1、友元函数及友元类的定义及使用方法 2、静态数据成员和静态成员函数的定义及使用方法 3、运算符重载的技巧 4、函数模板和类模板的定义及使用方法 5、标准模板库的使用方法及基本原理

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!