出现问题:
1.在编写运算符重载有关的题目时,因为常涉及到多个类对象的传参与引用,难以避免的会用到拷贝构造函数。因此,对默认拷贝构造函数了解的不够扎实的我,忽略的他运行的原理,同时也在此处出现了bug,在做题中发现默认拷贝貌似是把地址传了过去(好像是称之为浅拷贝),导致在之后的运行用,主函数中用默认拷贝构造出来的类对象,他们的内容保持了惊人的一致。在定义拷贝构造函数,并保证它只是拷贝值而非地址(貌似称之为深拷贝),从而达到规避连锁的bug。
(吐槽运行对深浅拷贝的定义,原来以为如果想要找信息,应该指针更深,毕竟是地址,理解为藏的更深才对,故此我原本理解为共用地址(传递地址)称之为深拷贝。
结果后面发现,可能是按计算机的思维来说,想要找信息(寻址),得先定位找到地址,再然后才是读值,类似于LEA为浅,LD为深的感觉)
2.特此有感,此次失误的造成是因为滥用了未知的(未作初始化/定义),不明确的东西,导致最后出现了bug。(本来以为足够严谨v_v)
/*****************************************************************************************************/
3.善用const,用于保护与封装,可用于防止变量或类在局部发生改变。
4.swap函数会内部将运用到赋值或拷贝等操作,故此在函数中调用该函数时,可用const将传进来的参数保护起来,防止它回去时变成你意料不到的样子。
学习日志1:运算符重载
最新推荐文章于 2024-10-02 23:04:10 发布