C++面试题(五)

来源:互联网 发布:登录阿里云 编辑:程序博客网 时间:2024/04/29 08:57

C++的空类,默认产生哪些类成员函数? 
答:

class Empty{ public:Empty();                           //缺省构造函数Emptyconst Empty& );           //拷贝构造函数~Empty();                          //虚构函数Empty& operator(const Empty& )     //赋值运算符}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

简单叙述面向对象的三个基本特征

答:封装性即把客观事物封装成抽象的类,对自身的数据和方法进行(publicprivateprotected)继承性继承概念的实现方式有三类:实现继承、接口继承和可视继承。实现继承是指使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。抽象类仅定义将由子类创建的一般属性和方法,创建抽象类时,请使用关键字 Interface 而不是 Class多态性多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。允许将子类类型的指针赋值给父类类型的指针。实现多态,有二种方式,覆盖(子类重新定义父类的虚函数),重载(允许存在多个同名函数,参数个数,类型不同)。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

C++中哪些函数不能被声明为虚函数?

答:普通函数(非成员函数),构造函数,内联成员函数、静态成员函数、友元函数。(1)虚函数用于基类和派生类,普通函数所以不能(2)构造函数不能是因为虚函数采用的是虚调用的方法,允许在只知道部分信息的情况的工作机制,特别允许调用只知道接口而不知道对象的准确类型的方法,但是调用构造函数即使要创建一个对象,那势必要知道对象的准确类型。(3)内联成员函数的实质是在调用的地方直接将代码扩展开(4)继承时,静态成员函数是不能被继承的,它只属于一个类,因为也不存在动态联编等(5)友元函数不是类的成员函数,因此也不能被继承
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

C++编译器自动为类产生的四个确缺省函数是什么?

答:默认构造函数,拷贝构造函数,析构函数,赋值函数
  • 1
  • 1

构造函数可否是虚汗数,为什么?析构函数呢,可否是纯虚的呢?

答:构造函数不能为虚函数,要构造一个对象,必须清楚地知道要构造什么,否则无法构造一个对象。析构函数可以为纯虚函数
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

构造函数和析构函数的调用顺序? 析构函数为什么要虚拟?

答案:构造函数的调用顺序:基类构造函数—对象成员构造函数—派生类构造函数;析构函数的调用顺序与构造函数相反。析构函数虚拟是为了防止析构不彻底,造成内存的泄漏。
  • 1
  • 1

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

答: virtual 修饰符会被隐形继承的。 private  也被继承,只是派生类没有访问权限而已。 virtual 可加可不加。子类的空间里有父类的所有变量 (static 除外 ) 。同一个函数只存在一个实体 (inline 除外 ) 。子类覆盖它的函数不加 virtual , 也能实现多态。在子类的空间里,有父类的私有变量。私有变量不能直接访问
  • 1
  • 1

当一个类A 中没有生命任何成员变量与成员函数,这时sizeof(A)的值是多少,请解释一下编译器为什么没有让它为零。

答案:为1。举个反例,如果是零的话,声明一个class A[10]对象数组,而每一个对象占用的空间是零,这时就没办法区分A[0],A[1]…了
  • 1
  • 1

怎样消除多重继承中的二义性?

答: 1.成员限定符  2.虚基类
  • 1
  • 1

什么叫静态关联,什么叫动态关联

答:在多态中,如果程序在编译阶段就能确定实际执行动作,则称静态关联,如果等到程序运行才能确定叫动态关联。
  • 1
  • 2
  • 1
  • 2

多态的两个必要条件

答:1.一个基类的指针或引用指向一个派生类对象  2.虚函数
  • 1
  • 1

什么时候需要用虚析构函数?

答:当基类指针指向用new运算符生成的派生类对象时,delete基类指针时,派生类部分没有释放掉而造成释放不彻底现象,需要虚析构函数。 补充:虚函数就是让派生类调用基类的虚函数。
  • 1
  • 1

13.怎样定义一个纯虚函数?含有纯虚函数的类称为什么?

答:在虚函数的后面加=0,含有虚函数的类称为抽象类。
  • 1
  • 1

什么时候必须重写拷贝构造函数?

答:当构造函数涉及到动态存储分配空间时,要自己写拷贝构造函数,并且要深拷贝。
  • 1
  • 1

构造函数的调用顺序是什么?

答:1.先调用基类构造函数2.按声明顺序初始化数据成员3.最后调用自己的构造函数。
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

构造函数和析构函数是否可以被重载,为什么?

答:构造函数可以被重载,析构函数不可以被重载。因为构造函数可以有多个且可以带参数,而析构函数只能有一个,且不能带参数。
  • 1
  • 1

说一下 C++ 中 static_cast 和 dynamic_cast 的区别。

答: static_cast  用于有比较明确定义的变换,包括不需要强制转换的变换。dynamic_cast  适用于类型安全的向下转换,常用在继承中的父类指针向子类指针的转换。若转换成功则返回改类型的指针,若失败,则返回 NULL 
  • 1
  • 2
  • 1
  • 2

类成员函数的重载、覆盖和隐藏区别?

答:a. 成员函数被重载的特征:( 1 )相同的范围(在同一个类中);( 2 )函数名字相同;( 3 )参数不同;( 4virtual  关键字可有可无。b. 覆盖是指派生类函数覆盖基类函数,特征是:( 1 )不同的范围(分别位于派生类与基类);( 2 )函数名字相同;( 3 )参数相同;( 4 )基类函数必须有 virtual  关键字。c. “隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:( 1 )如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无 virtual 关键字,基类的函数将被隐藏(注意别与重载混淆)。( 2 )如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有 virtual  关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
#i nclude using namespace std;class Base{public: virtual ~Base() { cout "~Base" endl ; }};class Derived : public Base{public: virtual ~Derived() { cout "~Derived" endl ; }};void main(void){Base * pB = new Derived; // upcastdelete pB;cin.get();}//输出结果为:~Derived~Base//如果析构函数不为虚,那么输出结果为~Base
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一频道中文字幕无线观看 一道中文不卡视频 中国中文字幕无线观看局域网 学妹开庖处疼流泪小说下载 学妹开庖处疼流泪视频网站 学生的母亲字幕中文翻译视频 中文不卡视频在线播放复古 学妹开庖处疼流泪视频 视频g 学妹开庖处疼流泪t 学妹开庖处疼流泪图新闻 学妹开庖处疼流泪漫画小说 学妹开庖处疼流泪高清 学妹开庖处疼流泪网站 039 年轻的老师3中文字中幕中国人 学妹开庖处疼流泪t小说 学妹开庖处疼流泪视频 视频中国 学妹开庖处疼流泪音频 中文字字视频人人 学妹开庖处疼流泪小说txt 学妹开庖处疼流泪视频 手机 视频字幕中文翻译 五姑娘中文视频版 小护土叫得太完整视频中文 上了瘾中文版视频 按摩院里的中国姑娘电影 五姑娘视频网搜 架起乳白腿一深一浅 9老师啪国线自产 老师你的水又多又甜视频 91国偷自产短视频网站 在卫生间里就做的视频 家庭毋HH伦s线播放中文字版 视频精二区 中文字 美国式 柰忌轧伦中文 二十三又嫩水又多 家庭毋HH伦s中文字幕 毋HH伦中文字幕视频 中文字 幕278页 子母相伦中文字幕视频 91国视频产产线动物 日本中文字幕1000视频