C++
文章平均质量分 83
bysevil
这个作者很懒,什么都没留下…
展开
-
C++ 虚函数与多态
因为子类指针在赋值兼容成父类指针时,虚函数表还是子类的虚函数表,所以实现了多态调用。但这种不同是有限制的,返回值虽然不同,但父类虚函数的返回值和子类虚函数的返回值必须是具有父子关系的类的引用或者指针。虚表指针存储在对象的前面,在调用构造函数的时候初始化,被隐含在初始化列表中。(所以构造函数不能是虚函数),指向的是一个函数指针数组,这个数组里面存的是当前类中所有虚函数的地址。满足多态时,虽然使用的是父类的指针,但进行的是相应的子类的虚函数。在有虚函数对象被实例化时,会生成一个指针,在vs下,这个指针叫做。原创 2024-03-04 22:52:58 · 267 阅读 · 0 评论 -
C++ 继承
如果子类和父类中有同名成员(函数和变量),子类会屏蔽对父类成员的直接访问,这叫做隐藏或重定义。此时父类的成员依旧存在,只不过被隐藏了也就是说,在子类中访问这个同名成员时,只会访问子类的成员。只有加上访问限定符,才会访问父类的成员。在父类和子类中,只需要函数名相同就可以构成隐藏,不需要参数不同。一般不要进行重定义。原创 2024-03-04 00:18:21 · 767 阅读 · 0 评论