![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度探索C++对象模型
吃着火锅x唱着歌
这个作者很懒,什么都没留下…
展开
-
深度探索C++对象模型 学习笔记 第二章 构造函数语意学
很多抱怨说C++背着程序员做了太多事,如:if (cin) { /* ... */ }为了让cin能转换为真假值,为cin定义一个类型转换运算符operator int(),就可以完成以上工作了,但以下行为:cin << intVal;相当于左移一个int。可以用operator void *()取代operator int()来避免这种情况。而将类型转换运算符声明为explicit的也可以避免。什么时候需要默认构造函数:class Foo {public: int v原创 2020-05-30 23:06:37 · 576 阅读 · 0 评论 -
深度探索C++对象模型 学习笔记 第一章 关于对象
C中想对一个struct对象做某种操作,可以通过一个函数、宏定义、或程序中直接完成。宏定义:#define Point3d_print(pd) \ printf("(%g, %g, %g)", pd->x, pd->y, pd->z); //%g表示自动选择合适的表示法输出在C++中,可以通过抽象数据类型ADT(一个class中的成员函数)实现(纯C中struct中不能有函数,但可以通过函数指针实现),也可以通过一个继承体系将操作传给基类函数等实现。还能使用模板参数化原创 2020-05-21 00:21:50 · 251 阅读 · 0 评论