c++常用知识点4
来源:互联网 发布:parallels 没有网络 编辑:程序博客网 时间:2024/06/16 08:20
组合与继承:
组合:has-a关系
继承:is-a关系
C++类的继承,指用现有类来创建新的类,即新类会获得已有类的属性和行为,并且可以添加新的属性和行为
新的类称为子类或派生类,已有类称为父类或基类!
格式:
class 派生类名: 继承方式 基类名
{
//派生类新增加的成员
};
继承的过程:
1.接收基类的成员
2.修改成员的访问权限或隐藏基类中不需要的东西
3.添加新的属性和行为
继承方式:
public:公有继承
priavte:私有继承
protected:保护继承
继承方式决定了 基类中的成员 在派生类内部和在派生类的外部 的访问权限。
公有继承:(掌握)
基类的公有成员、保护成员会成为派生类的公有成员和保护成员,基类的私有成员成为派生类的不可访问成员
私有继承:(了解)
基类的公有成员、保护成员会成为派生类的私有成员,基类的私有成员成为派生类的不可访问成员
保护继承:(了解)
基类的公有成员、保护成员会成为派生类的保护成员,基类的私有成员成为派生类的不可访问成员
-------------------------------------------------------------------------------------------------
#include<iostream>using namespace std;class Student{public:void study(){cout << "学习使我快乐!\n";}};class xStudent:public Student{public:void study(){cout << "小学生学习四则运算!\n";}};class zStudent:public Student{public:void study(int a){cout << "中学生学学习几何代数!\n";}};int main(){xStudent x;x.study();x.Student::study();zStudent z;z.study(10);z.Student::study();return 0;}
继承中的构造函数与析构函数:
构造函数与析构函数不能被继承
特性:
1.如果基类和派生类有默认的构造函数,编译器会自动调用
2.如果需要把参数传递给基类的构造函数,必须定义带参数的构造函数,且需要以派生类的初始化表的形式调用基类的构造函数
3.在调用派生类的构造函数之前,会先调用基类的构造函数。
4.在派生类对象被销毁时,会先调用派生类自己的析构函数,再调用基类的析构函数
-------------------------------------------------------------------------------------------------
#include<iostream>using namespace std;class Parent{public:Parent(){a = 10;}Parent(int a):a(a){cout << "Parent(int)" << endl;}void show(){cout << "a = " << a << endl;}~Parent(){cout << "~Parent()" << endl;}private:int a;};class Child:public Parent{public:Child(){b = 10;}Child(int a,int b):b(b),Parent(a){cout << "Child(int,int)" << endl;}void show(){//cout << "a = " << a << endl;Parent::show();cout << "b = " << b << endl;}~Child(){cout << "~Child() " << endl;}private:int b;};int main(){Child c(100,200);c.show();return 0;}
阅读全文
0 0
- C语言常用知识点
- C语言常用知识点
- c语言常用知识点
- c++常用知识点4
- C程序中常用知识点注意事项
- C语言重要常用知识点梳理
- C语言知识点4
- C语言知识点-4
- C 知识点(4)
- 常用知识点
- 常用知识点
- C 语言中一些非常用知识点 备忘录
- 高质量C编程10-常用知识点收集
- c知识点
- C 知识点
- Java Web知识点--常用算法(4)
- C/C++code知识点
- C/C++【知识点笔记】
- [第七季]12.遍历元素的后代和同胞
- FAL[server, ARC2]: FAL archival, error 16099 closing archivelog file 'primary'
- JEESZ分布式框架开发环境部署
- Neo4j CQL
- const使用详解
- c++常用知识点4
- A
- IDEA离线安装插件
- System.Configuration.ConfigurationManager.AppSettings["strCon"]
- 惰性求值,可组合和模块化的JavaScript
- 安卓沉浸式状态栏解决方案
- Generator函数执行器-co函数库源码解析
- Palindrome Function(回文数)
- show slave status \G; 详解