c++学习之--关于运算符重载

来源:互联网 发布:fps不稳定与网络有关吗 编辑:程序博客网 时间:2024/06/11 17:46

关于运算符重载方面的小结:

在做了运算符重载的练习之后,有了一些疑惑,同时也对运算符重载理解更近了一步。

了解了运算符重载的基本格式,从最简单的双目运算符到单目运算符,再将运算符重载为

友元函数。重载赋值运算符(为什么要重载赋值运算符?),重载下标运算符等等(重载运算符的一些语法规则在练习中)。

下面列出我的一些问题:

在重载运算符的时候发现了单目运算符返回的是类的引用,但是双目运算符返回的直接是类的对象。对此表示不是很理解。后来在查阅资料(引用和指针)加深了对引用和指针的理解

明白为什么在单目运算符例如“+=”的时候需要返回的是引用,了解“++”等前置和后置的写法的同时,发现

Return Complex(x,y);是产生并返回了临时对象。

在了解重载运算符语法的同时,同时遇到了一些问题:

引用和指针

左值和右值

堆内存和栈内存

Deletedelete[]的区别

 

关于引用和指针

相同点:

都是地址的概念:指针指向一块内存,他的内容是所指的内存的地址;而引用是某块内存的别名;

不同点:

指针变量在逻辑上是独立的,可以改变它所指向的地址和其指向的地址中所存放的数据,即指针可以“见异思迁”。指针可以为空。

引用在逻辑上不是独立的,引用必须在一开始就被初始化,而且其引用的对象在整个生命周期中不能被改变,即引用“从一而终”。引用不能为空。