父类与子类
来源:互联网 发布:不亦说乎的乐的读音 编辑:程序博客网 时间:2024/05/18 01:54
概念解释:
白马和马,则马是父类,白马是子类。子类具有父类的所有属性。比如白马具有和父类一样的马头马尾。因此父类可以被子类赋值,马被赋值之后就成了白马。
子类也能再派生子类,如 白马分为亚洲白马和美洲白马,亚洲白马有可以分为成年亚洲白马和未成年亚洲白马。
父类头文件代码:
#pragma once#include"iostream"using namespace std;class leia //创建父类 leia(为具有面积属性和图形名称属性的父类){public:leia();~leia();double mianji;string name;void fuleihanshu();};
父类cpp源文件代码:
#include "stdafx.h"#include "leia.h"leia::leia(){}leia::~leia(){}void leia::fuleihanshu()//父类函数(用于检测){cout << "fuleihanshu successful" << endl;}
子类头文件代码:
#pragma once#include "leia.h"class leib : //(创建子类 leib 为三角形类,具有abc三边长度的属性)public leia{public:leib();~leib();double abian;double bbian;double cbian;};
上文子类头文件代码中要包含父类的头文件,这样才能在子类(三角类)中使用父类的属性
子类cpp源文件代码:(为了方便 没写函数)
#include "stdafx.h" #include "leib.h"leib::leib(){}leib::~leib(){}
主函数代码:
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#include"iostream"#include"leib.h"#include"leia.h"//此处可以不写,因为子类的头文件里包含了父类头文件。#include"string"using namespace std;int main(){leia tuxing; //定义父类leib sanjiao; //定义子类sanjiao.fuleihanshu(); //子类中可以调用父类的函数,将在第一行输出“successful”;tuxing.name = "形状"; //让父类的成员name="形状";cout << tuxing.name << endl<<endl;//输出 父类的name。 将在第二行输出“形状”第三第四行输出回车;sanjiao.name = "三角形"; //子类具有父类的属性,所以子类也具有name属性;给子类name 赋值‘三角形’tuxing = sanjiao; //这里就是白马是马的地方了,三角形是图形,所以 tuxing=sanjiao;而不能反过来。cout << tuxing.name << endl; //tuxing.name 被sanjiao.name 赋值后 变为“三角形”;应输出 “三角形”system("pause"); return 0;}
执行结果:
关于父类与子类指针问题:
依然是白马是马而马不是白马的问题。
假设有父类A,A 中有成员a(int 型);
假设有子类B,B中有成员b(double 型);
A aa;//声明aa;
B bb;//声明 bb;
A *Pa;//声明A类指针;
B *Pb;//声明B类指针;
Pa=&aa;//合法 (父类指针指向父类);
Pa=&bb;//合法 (父类指针指向子类);
Pb=&bb;//合法(子类指针指向子类);
Pb=&aa;//非法(子类指针指向父类);
父类子类代码示例:
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#include"iostream"#include"leib.h"//#include"leia.h"#include"string"using namespace std;int main(){leia tuxing;leia *pa;leib sanjiao;leib *pb;pa = &tuxing;//合法 马=马;pa = &sanjiao;//合法 马=白马;pb = &sanjiao;//合法 白马=白马;//pb = &tuxing; //非法; 白马=马;(错误)system("pause"); return 0;}
0 0
- 子类与父类,
- 父类与子类
- 父类与子类
- 继承 父类与子类
- 父类与子类2
- 5.1 子类与父类
- C#子类与父类的初始化
- 子类与父类的初始化
- 父类与子类的转换条件
- 父类与子类之间的转换
- 子类与父类的初始化问题
- c++子类与父类的关系
- Java子类与父类的初始化
- 父类与子类、继承关系总结
- php 父类与子类相互访问
- java父类与子类的多态性
- php 子类与父类的关系
- java 子类与父类 转换
- 算法学习笔记之鸡兔同笼
- Codeforces Round #349 (Div. 2)-B. Coat of Anticubism(二分+贪心)
- 2013山东省第三届ACM省赛 Pixel density
- LightOJ - 1305 Area of a Parallelogram (数学几何)水
- 9.单字段分组和多字段分组
- 父类与子类
- Android模仿IOS的自定义switch
- BZOJ 1208 平衡树Treap模版题
- Java并发编程--CountDownLatch配合线程池
- JAVA中的sort排序
- Git 使用
- Mysql5-7-11 安装教程
- code
- LightOJ - 1241 Pinocchio (模拟)