时间:2021-05-20
运算符重载,对象和指向对象的指针
直接上code
复制代码 代码如下:
#include <iostream>
using namespace std;
class test
{
public:
int a;
test() : a(0){}
test &operator*(){
cout << "operator*" << endl;
cout << a << endl;
return *this;
}
};
int main()
{
test *t;
t = new test;
test t2 = *t;
t->a += 1;
// t2.a += 1;
*t = *t2;
*t; // 这一行 *t2; // **t; // 注意*t 和 **t这两个的差别
return 0;
}
运行结果:
t是指向test对象的指针,(*t) 也就是一个test对象。
所以只有 *t才真正的调用了 运算符的重载函数。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
运算符重载实质上是函数的重载重载运算符的函数一般格式如下:函数类型operator运算符名称(形参表列){对运算符的重载处理}例如,想将“+”用于Complex
实际上,很多C++运算符已经被重载。eg:将*运算符用于地址,将得到存储在这个地址中的值,将他用于2个数字时,得到的将是他们的乘积。C++根据操作数的数目和类型
加号运算符重载对于内置数据类型,编译器知道如何运算但是对于自己封装的类,编译器无法进行运算这时可以通过自己定义运算符重载进行运算operator+通过成员函数重
最近看了菜鸟教程里的C++教程遇到很多运算符重载,为了方便我的学习,我把这些总结了一下如有错误(包括之前的博文)请评论留言,谢谢!由于代码里注释的很清楚,我就不
相信不少朋友在学习运算符重载的时候,都会被参数与返回值应该是左值引用,还是右值引用,还是const常量所困扰。当然我无法一一枚举,这次先讲一下返回值的坑(没错就