目录
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