摘要:
平时所使用的new和delete操作,称之为表达式,一般由好几个步骤组成。 如上图所示,new表达式会被编译器转化为三个步骤。 new表达式不能重载,但其中operator new是可以重载的。 ➡️全局::operator new的重载 why 不能放在namespace内?因为全局operato 阅读全文
posted @ 2024-01-30 21:21
rthete
阅读(67)
评论(0)
推荐(0)
摘要:
关键词:虚函数表,动态绑定,多态 每个对象都维护自己的虚表指针,指向类的虚函数表。 (所以对象的size比其包含的所有数据size多4,即虚指针大小) ➡️动态绑定:(多态的实现原理) 通过指针p找到对象c的vptr 通过vptr找到class C的vtbl 在vtbl中找到第n个虚函数并调用 ➡️ 阅读全文
posted @ 2024-01-30 21:17
rthete
阅读(35)
评论(0)
推荐(0)
摘要:
关键词:类模板,函数模板,成员模板,模板特化 “泛化”和“特化” Tip Demo 类模板定义时需要显式地指定类型名。 函数模板定义时编译器自动进行实参推导类型(但不提供隐式转换)。 成员模板:模板中还包含模板 模板(全)特化格式:template<>尖括号内为空 模板偏特化(partial spe 阅读全文
posted @ 2024-01-30 21:15
rthete
阅读(30)
评论(0)
推荐(0)
摘要:
关键词:仿函数 pointer-like:将一个类设计得像指针一样,通常通过重载*和->操作符实现。 function-like:将类的成员设计得能像函数一样使用,通过重载()操作符实现。 Tip Demo 应用:智能指针注意:->符号在作用一次后,会继续作用下去(不同于*号)Foo f(*sp): 阅读全文
posted @ 2024-01-30 21:11
rthete
阅读(28)
评论(0)
推荐(0)
摘要:
关键词:类型转换,explicit Tip Demo 转换函数conversion function一般形式:operator type() const;- 不需要写返回类型- 一般来说返回const non-explicit-one-argument-ctor非显式构造,编译器自动将4构造为fra 阅读全文
posted @ 2024-01-30 21:08
rthete
阅读(26)
评论(0)
推荐(0)
摘要:
关键词:动态内存分配,拷贝赋值,new/delete 与Complex类最大的差别:有动态分配的内存空间(char* m_data) Tip Demo 拷贝赋值函数的一般结构 拷贝赋值时,检测自我赋值非常重要自己的内存已经释放了,还怎么把自己赋给自己? new时做了什么?1.分配内存2.static 阅读全文
posted @ 2024-01-30 20:49
rthete
阅读(22)
评论(0)
推荐(0)

浙公网安备 33010602011771号