摘要:
1、默认构造函数 2、拷贝构造函数 3、虚 析构函数 阅读全文
posted @ 2017-12-20 22:30
newbird2017
阅读(149)
评论(0)
推荐(0)
摘要:
看这个代码 通过这些代码,和调试工具,f10 f11来查看到底干了啥。 mark1: 构造函数。不用解释。 生成了a1 mark2: 发生了一次构造函数。h(a)会先拷贝构造一个临时变量,作为形参。 然后才进入h函数内部。生成的是a2 mark3: return这一句发生了两件事, 先发生了一次拷贝 阅读全文
posted @ 2017-12-20 22:13
newbird2017
阅读(319)
评论(0)
推荐(0)
摘要:
父类中发生了重载。 子类中如果没有定义名字冲突的成员函数,这时候,父类中的两个函数都可以访问。 有冲突的时候,a只能直接访问自己定义的这个。 父类中的f必须通过a.parent::f这样的方式访问。这三个是并存的。 加了virtual以后呢? 阅读全文
posted @ 2017-12-20 18:17
newbird2017
阅读(113)
评论(0)
推荐(0)
摘要:
两种代码方式: 执行结果如下,这是upcasting的例子。 person.f() 第二个例子:加上virtual 运行结果:woman.f() 这就是virtual的作用。 当使用指针或者引用的时候,不论指针或者引用的类型是父类还是子类,总是找到最精确的类型,去执行对应的成员函数。 阅读全文
posted @ 2017-12-20 12:48
newbird2017
阅读(130)
评论(0)
推荐(0)
摘要:
不把b当B看了,而是把它当成一个A,只取它里面A属性的部分。 所以,pa->get_i()调用的实际上是A的get_i() pa->f()是一个非法调用。因为A里面没有f函数。 阅读全文
posted @ 2017-12-20 11:23
newbird2017
阅读(132)
评论(0)
推荐(0)
浙公网安备 33010602011771号