01 2024 档案

摘要:平时所使用的new和delete操作,称之为表达式,一般由好几个步骤组成。 如上图所示,new表达式会被编译器转化为三个步骤。 new表达式不能重载,但其中operator new是可以重载的。 ➡️全局::operator new的重载 why 不能放在namespace内?因为全局operato 阅读全文
posted @ 2024-01-30 21:21 rthete 阅读(35) 评论(0) 推荐(0) 编辑
摘要:关键词:虚函数表,动态绑定,多态 每个对象都维护自己的虚表指针,指向类的虚函数表。 (所以对象的size比其包含的所有数据size多4,即虚指针大小) ➡️动态绑定:(多态的实现原理) 通过指针p找到对象c的vptr 通过vptr找到class C的vtbl 在vtbl中找到第n个虚函数并调用 ➡️ 阅读全文
posted @ 2024-01-30 21:17 rthete 阅读(21) 评论(0) 推荐(0) 编辑
摘要:关键词:类模板,函数模板,成员模板,模板特化 “泛化”和“特化” Tip Demo 类模板定义时需要显式地指定类型名。 函数模板定义时编译器自动进行实参推导类型(但不提供隐式转换)。 成员模板:模板中还包含模板 模板(全)特化格式:template<>尖括号内为空 模板偏特化(partial spe 阅读全文
posted @ 2024-01-30 21:15 rthete 阅读(15) 评论(0) 推荐(0) 编辑
摘要:关键词:仿函数 pointer-like:将一个类设计得像指针一样,通常通过重载*和->操作符实现。 function-like:将类的成员设计得能像函数一样使用,通过重载()操作符实现。 Tip Demo 应用:智能指针注意:->符号在作用一次后,会继续作用下去(不同于*号)Foo f(*sp): 阅读全文
posted @ 2024-01-30 21:11 rthete 阅读(17) 评论(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 阅读(10) 评论(0) 推荐(0) 编辑
摘要:关键词:动态内存分配,拷贝赋值,new/delete 与Complex类最大的差别:有动态分配的内存空间(char* m_data) Tip Demo 拷贝赋值函数的一般结构 拷贝赋值时,检测自我赋值非常重要自己的内存已经释放了,还怎么把自己赋给自己? new时做了什么?1.分配内存2.static 阅读全文
posted @ 2024-01-30 20:49 rthete 阅读(8) 评论(0) 推荐(0) 编辑
摘要:1 ade下载超时 查看CMakeDownlodLog.txt找下载地址和目标路径(包含md5值),按下载地址下载文件,放到你的opencv-4.7.0/.cache/ade下,记得把文件改名改成包含md5值的。其他缺失文件也可以一样处理。 2 即使下载完依然cmake报错 -- Configuri 阅读全文
posted @ 2024-01-18 16:35 rthete 阅读(431) 评论(0) 推荐(0) 编辑
摘要:关键词:可见性, const, by value or reference Tip demo why private constructor:实现单例模式 内联的好处:减少了函数调用,效率更高。- 使用inline关键字建议编译器内联,实际是否内联由编译器决定 构造函数中,初始化时就进行赋值,效率更 阅读全文
posted @ 2024-01-18 16:12 rthete 阅读(7) 评论(0) 推荐(0) 编辑

主题色彩
点击右上角即可分享
微信分享提示