C++——继承

本文探讨public,protected,private继承的关系与用法。

继承的格式:class worker : public Person
注意是
几种继承之间的关系:在这里插入图片描述

子类private继承后,父类中的成员都将继承到子类的private访问限定符中,子类无法访问父类的成员。
子类不能继承并使用父类的私有成员
在这里插入图片描述
public继承,父类中的public,protected子类可以访问,private不能访问

在这里插入图片描述

protected继承中,public,protected在子类中都将继承到子类的protected访问限定符下,子类无法正常访问父类的public成员。

public 中的东西都会被继承(有简化代码的功能)

  • main 文件
#include <iostream>
#include "Person.h"
#include "worker.h"

using namespace std;

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
//	Person *p = new worker();
//	
//	p->eat();
//	p->m_strName = "jiyacheng";
//	p->m_iAge = 20;
//	
//	cout << p->m_iAge << p->m_strName << endl;
//	delete p;
//	p = NULL;	

	worker w;
	w.eat();

	return 0;
}
  • Person 头文件
#ifndef PERSON_H
#define PERSON_H
#include <string>
using namespace std;

class Person
{
	public:
		Person();
		~Person();
		void eat();
	protected:
		int m_iAge;
		string m_strName;
};

#endif

//保护继承protected 
  • Person cpp文件
#include "Person.h"
#include <iostream>

using namespace std;

Person :: Person()
{
	cout << "Person()" << endl;
}

Person :: ~Person(){
	cout << "~Person" << endl;
}

void Person :: eat(){
	cout << "eat()" << endl;
}
  • worker头文件
#ifndef WORKER_H
#define WORKER_H
#include "Person.h"

class worker : public Person
{
	public:
		worker();
		~worker();
		void working();
		int m_iSalary;		
};

#endif
  • worker cpp文件
#include "worker.h"
#include <iostream>
using namespace std;

worker :: worker(){
	m_iAge = 12;
	m_strName = "ji";
	cout << "Work()" << endl;
}

worker :: ~worker(){
	cout << "~work()" << endl;
}

void working(){
	cout << "working()" << endl;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玖玖玖_violet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值