C++学习基础之基类和派生类
来源:互联网 发布:mysql 按月查询 编辑:程序博客网 时间:2024/06/06 19:04
派生类的继承方式总结:
继承方式说明public基类的public和protected的成员被派生类继承后,保持原来的状态private基类的public和protected的成员被派生类继承后,变成派生类的private成员protected基类的public和protected的成员被派生类继承后,变成派生类的protected成员
1. 友元函数必须在类中进行声明而在类外定义,声明时须在函数返回类型前面加上关键字friend。友元函数虽不是类的成员函数,但它可以访问类中的私有和保护类型数据成员。
2. 虚函数在重新定义时参数的个数和类型必须和基类中的虚函数完全匹配,这一点和函数重载完全不同。
3. #include <文件名>和#include "文件名"
- 文件包含的两种格式中,第一种格式用来包含那些由系统提供的并放在指定子目录中的头文件;而第二种格式用来包含那些由用户自己定义的放在当前目录或其他目录下的头文件或其它源文件。
4. 数组也可以作为函数的实参和形参,若数组元素作为函数的实参,则其用法与变量相同。当数组名作为函数的实参和形参时,传递的是数组的地址。当进行按值传递的时候,所进行的值传送是单向的,即只能从实参传向形参,而不能从形参传回实参。形参的初值和实参相同,而形参的值发生改变后,实参并不变化,两者的终值是不同的。而当用数组名作为函数参数进行传递时,由于实际上实参和形参为同一数组,因此当形参数组发生变化时,实参数组也随之发生变化。
注:实参数组与形参数组类型应一致,如不一致,结果将出错;形参数组也可以不指定大小,在定义数组时数组名后面跟一个空的方括号,为了在被调用函数中处理数组元素的需要,可以另设一个参数,传递数组元素的个数。如:int sum(int array[],int n);
5. 重载、覆盖和隐藏的区别?
函数的重载是指C++允许多个同名的函数存在,但同名的各个函数的形参必须有区别:形参的个数不同,或者形参的个数相同,但参数类型有所不同。
覆盖(Override)是指派生类中存在重新定义的函数,其函数名、参数列、返回值类型必须同父类中的相对应被覆盖的函数严格一致,覆盖函数和被覆盖函数只有函数体 (花括号中的部分)不同,当派生类对象调用子类中该同名函数时会自动调用子类中的覆盖版本,而不是父类中的被覆盖函数版本,这种机制就叫做覆盖。
下面我们从成员函数的角度来讲述重载和覆盖的区别。
成员函数被重载的特征有: 1) 相同的范围(在同一个类中);2) 函数名字相同;3) 参数不同;4) virtual关键字可有可无。
覆盖的特征有: 1) 不同的范围(分别位于派生类与基类);2) 函数名字相同;3) 参数相同;4) 基类函数必须有virtual关键字。
- C++学习基础之基类和派生类
- C++基础--基类和派生类
- 一步一步学习C++(类)之继承与派生
- [C++]继承和派生类
- OBJ-C类的继承和派生学习笔记
- 学习继承和派生类
- 派生和基类
- C++primer学习:面象对象程序设计(1):定义基类和派生类
- C++(29)基类和派生类
- C语言类的继承和派生
- 黑马程序员---成长之路-----OC之基础篇类的继承和派生
- C++ 学习之继承1:基类与派生类
- MFC学习笔记(三)之基类、派生类
- 黑马程序员_学习日记5_C#基础归纳总结之派生类的构造函数
- C++基础之基类派生类指针间强转问题(基类派生类傻傻分不清)
- 基类和派生类
- 基类和派生类
- 基类和派生类
- Spring1.基础知识
- oracle拆分逗号分隔字符串 实现split
- Android基础之如何在AS中导入jniLibs目录
- LeetCode之Excel Sheet Column Title
- 51nod 1027 大数乘法
- C++学习基础之基类和派生类
- android-Service和Thread的本质区别
- activity中的R文件报错:cannot resolve symbol ‘R’
- MTK 开发流程和开发环境
- jaxen作用
- git lfs 用于二进制文件等非代码文件的版本控制
- 多态
- Python基础-dict字典
- XLT的unity3D学习笔记(三)