摘要: 如何统计对象中某个成员变量的访问次数? 解法: 这里我们只能满足普通对象的访问统计,那么const对象呢? 完善解法,使得能统计只读对象的访问次数: 使用了mutable之后,只读对象名存实亡。 使用mutable可以完成const对象的访问统计,但是不使用mutable也可以完成这个需求。 使用指 阅读全文
posted @ 2018-09-06 23:21 周伯通789 阅读(281) 评论(0) 推荐(0)
摘要: 令人迷惑的写法: 示例程序: 上述程序可以正常编译通过。 有了class,为什么还要定义typename呢? 用class定义普通类型的泛指类型,容易产生迷惑性。 由于一个二义性问题,产生了typename: 示例程序: 第57行使用Test_1作为类型参数来使用模板可以编译通过,这意味着第50行被 阅读全文
posted @ 2018-09-06 22:52 周伯通789 阅读(290) 评论(0) 推荐(0)
摘要: 面试问题: 编写程序判断一个变量是不是指针? 指针的判别: 匹配顺序示例: 可以看到匹配顺序符合我们的结论。 定义一个函数模板和一个同名的变参函数,给的参数如果是指针,编译器会先匹配模板。不是指针的话只能匹配变参函数。 实验: 第41行我们看到输出了非法指令,这是为什么呢,因为变参函数是C语言的特性 阅读全文
posted @ 2018-09-06 22:13 周伯通789 阅读(173) 评论(0) 推荐(0)
摘要: 类型识别: 为什么引入类型识别呢?因为面向对象中有一个非常重要的原则就是赋值兼容性原则,就是子类对象完全可以当成父类对象使用。 当我们拿到指针p,我们知道它到底指向子类还是父类对象吗? p的静态类型是Base,本意是期望指向Base对象,但是由于赋值兼容性,指针有可能指向子类对象,子类对象在这里是动 阅读全文
posted @ 2018-09-06 21:27 周伯通789 阅读(166) 评论(0) 推荐(0)