(四)C++中的继承、多态和模板函数

C++中的继承、多态和模板函数

一、继承

1、属性和方法的继承

继承可以更好的实现代码的重用性

#include <stdlib.h>
#include <iostream>

using namespace std;

//开发者
class Developer {
protected:
	char* language;
	char* ide;
	int age;
public:
	void say() {
		cout << "我是开发者" << endl;
	}
};

//Android开发者
class AndroidDeveloper : public Developer {
public:
	AndroidDeveloper() {
		this->language = (char*)"Android+Kotlin";
		this->ide = (char*)"Android Stuio";
	}
	//开发Android Application
	void createAndroidApp() {
		cout << "我使用" << this->ide << "开发了一款Android应用,使用了" << this->language << "语言" << endl;
	}
private:
	//Android 版本
	char* androidVersion;

};

//所有开发者都有开发工作
void work(Developer& d) {
	d.say();
}

void main() {
	AndroidDeveloper androidDev;
	androidDev.say();
	androidDev.createAndroidApp();
    //子类对象初始化父类类型的对象
	Developer d1 = androidDev;
	work(d1);
	//父类类型的指针
	Developer* d_p = &androidDev;
	d_p->say();
	//父类类型的引用
	Developer d2 = androidDev;
	d2.say();

	getchar();
}

2、通过子类给父类构造方法传参

父类的构造函数先调用;子类的析构函数先调用

//开发者
class Developer {
protected:
	char* language;
	char* ide;
	int age;
public:
	Developer(char * language, char* ide, int age) {
		this->language = language;
		this->ide = ide;
		this->age = age;
		cout << "Developer 构造函数" << endl;
	}
	~Developer() {
		cout << "Developer 析构函数" << endl;
	}
	void say() {
		cout << "我是开发者" << endl;
	}
};

//Android开发者
class AndroidDeveloper : public D
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值