栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++常见知识点2

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++常见知识点2

C++常见知识点2 虚析构的作用?

答:防止内存泄漏,正确析构指向派生类实例的基类指针。

TIPS:如果不是虚析构函数,基类指针被释放不会调用派生类的析构函数。

是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态

答:是的,virtual修饰符会被隐形继承的,virtual可加可不加,子类覆盖它的函数不加virtual也能实现多态。

抽象类不会产生实例,所以不需要有构造函数

答:错误,编译器默认生成构造函数。

多态的作用

答:

  隐藏实现细节,使得代码能够模块化;扩展代码模块,实现代码重用;

  接口重用:为了类在继承和派生的时候,保证使用家族中任一类的实例的某一属性时的正确调用。

构造函数和析构函数的调用顺序

答:构造函数的调用顺序:基类构造函数—对象成员构造函数—派生类(当前类)构造函数;析构函数的调用顺序与构造函数相反。

引用与指针有什么区别

答:引用必须被初始化,指针不必。引用初始化以后不能被改变,指针可以改变所指的对象。不存在指向空值的引用,但是存在指向空值的指针。

C++ 的构造函数可以是虚函数吗?

答:C++中,构造函数不可以是虚函数,而析构函数可以且常常是虚函数。

当类中声明虚函数时,编译器会在类中生成一个虚函数表,虚函数表是一个存储成员函数指针的数据结构。

虚函数表是由编译器自动生成与维护的,virtual成员函数会被编译器放入虚函数表中,当存在虚函数时,每个对象都有一个指向虚函数的指针(vptr指针)。在实现多态的过程中,父类和派生类都有vptr指针。

vptr的初始化:当对象在创建时,由编译器对vptr指针进行初始化。在定义子类对象时,vptr先指向父类的虚函数表,在父类构造完成之后,子类的vptr才指向自己的虚函数表。

如果构造函数是虚函数,那么调用构造函数就需要去找vptr,而此时vptr还没有初始化。

因此,构造函数不可以是虚函数。

两个浮点数如何比较大小?

答:两数相减的值,判断是否在一定范围内,因为浮点数不精确。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/997281.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号