您的位置:首页 > 编程语言 > C语言/C++

C++面试点2

2016-03-25 15:48 232 查看
1、构造函数
类用来初始化类对象数据成员的一个或几个特殊的和类名相同的成员函数叫做 构造函数。构造函数可以重载,可以有多个,但只能有一个缺省构造函数。undefined
构造函数没有返回类型;类可以包含多个构造函数,和其他重载函数差不多,不同的构造函数之间必须在参数数量或参数类型上有所区别。构造函数不能被声明成const的。
2、析构函数
 在撤销对象占用的内存之前,进行一些操作的函数。析构函数不能被重载,只能有一个
3、先构造的后析构,后构造的先析构。它相当于一个栈,先进后出。
 在全局范围定义的对象和函数中定义的静态局部对象,只在main函数结束或者调用exit函数结束程序时,才调用析构函数。在函数中定义的对象,在建立对象时调用其构造函数,在函数调用结束、对象释放时先调用析构函然后再结束。
4.成员函数的重载、继承、覆盖和隐藏。
 ★ 成员函数被重载的特征:
(1)在同一个类中;(2)函数名相同;(3)参数不同;(4)virtual关键字可有可无。
 ★类成员函数继承:
(1)对于父类函数(virtual,非virtual),如果子类没有同名函数,则正常继承
(2)对于父类函数(virtual,非virtual),若果子类有同名函数,无同型函数,则不能继承
(3)对于父类函数(virtual,非virtual),如果有同型函数:非virtual函数由指针类型决定调用哪个;virtual函数由指针指向的对象决定调用哪个(运行时决定)。
★派生类函数覆盖基类函数,特征是:
(1)分别位于派生类和基类中;(2)函数名相同;(3)参数相同;(4)基类函数必须有virtual关键字。
★隐藏,派生类的函数屏蔽了与其同名的基类函数。
(1)若派生类的函数与基类的函数同名,但参数列表有所差异。此时,不论有无virtual关键字,基类的函数在派生类中将被隐藏。(区别重载)
(2)若派生类的函数与基类的函数同名,参数列表也相同,但基类中没有virtual关键字,此时积累的函数在派生类中将被隐藏。(区别覆盖)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息