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关键字,此时积累的函数在派生类中将被隐藏。(区别覆盖)
类用来初始化类对象数据成员的一个或几个特殊的和类名相同的成员函数叫做 构造函数。构造函数可以重载,可以有多个,但只能有一个缺省构造函数。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关键字,此时积累的函数在派生类中将被隐藏。(区别覆盖)
相关文章推荐
- PostgreSQL教程(三):表的继承和分区表详解
- Lua面向对象之类和继承浅析
- 浅析Ruby中继承和消息的相关知识
- C#运算符重载用法实例分析
- 详解C#编程中构造函数的使用
- C#中重载与重写区别分析
- C#中多态、重载、重写区别分析
- 设计引导--一个鸭子游戏引发的设计理念(多态,继承,抽象,接口,策略者模式)
- C++中拷贝构造函数的应用详解
- C++实现不能被继承的类实例分析
- 完全掌握C++编程中构造函数使用的超级学习教程
- 详解C++中如何将构造函数或析构函数的访问权限定为private
- 构造函数不能声明为虚函数的原因及分析
- 深入讲解C++中的构造函数
- C++类成员构造函数和析构函数顺序示例详细讲解
- C# 面向对象三大特性:封装、继承、多态
- c++基础语法:构造函数与析构函数
- PHP类的封装与继承详解
- 封装与继承
- 重载&方法返回值