-
类 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指针查看全部
-
原来非静态函数 会传入一个隐形的 this指针!!学习了。 静态函数没有this指针 所以无法使用非静态成员。查看全部
-
/*静态成员是类的成员,不是对象的成员; *静态成员函数不能直接访问非静态函数,普通成员函数可以调用静态函数。 *静态成员函数访问静态数据成员的方法:类名::静态成员名 || 对象名.静态成员名 || 对象指针->静态成员名 *静态成员函数没有this指针 说的简单点静态的就是类全局的,只是定义一个全局变量的话,变量和类的关系没办法令人一目了然查看全部
-
声明友元格式如下(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);指针查看全部
-
友元函数的参数列表必须是类的对象、引用或指针 友元函数的括号内一定要有东西 传入对象的引用,函数的声明和定义写法:void display(Coordinate &coor)查看全部
举报
0/150
提交
取消