如何自己做企业网站,织梦做的网站织梦修改网页,wordpress链接提交谷歌搜索,广东网页空间购买模板类的继承
1)类模板 继承 类模板 (2)类模板 继承 模板类 (3)类模板 继承 普通类 (4)普通类 继承 模板类
单模板参数#xff0c;类模板继承类模板#xff0c;代码实现 //作为父类
template typename T
class People {private:/* data */int age;public:T x;Peopl…模板类的继承
1)类模板 继承 类模板 (2)类模板 继承 模板类 (3)类模板 继承 普通类 (4)普通类 继承 模板类
单模板参数类模板继承类模板代码实现
//作为父类
template typename T
class People {private:/* data */int age;public:T x;People() {} // Default constructorPeople(T a) : x(a) {}void myprint(const PeopleT pn);
};template typename T
void PeopleT::myprint(const PeopleT pn) {cout pn.x pn.x endl;
}template typename T
class Man : public PeopleT {private:/* data */public:T y;Man() {} // Default constructorMan(T a) : y(a) {}Man(T a, T b) : PeopleT(a), y(b) {}
};void test070802(void) {Peopleint p1(10);p1.myprint(p1);Manint m1(88, 99);m1.myprint(m1);cout m1.x m1.x endl;cout m1.y m1.y endl;
}总结在继承时相当于用子类的模板参数Tx去实例填充了父类的模板参数Ty 作用用于构建模板化的类体系写模板化的大框架
//作为父类
template typename T
class People {private:/* data */int age;public:T x;People() {} // Default constructorPeople(T a) : x(a) {}void myprint(const PeopleT pn);
};template typename T
void PeopleT::myprint(const PeopleT pn) {cout pn.x pn.x endl;
}template typename T1
class Man : public PeopleT1 {private:/* data */public:T1 y;Man() {} // Default constructorMan(T1 a) : y(a) {}Man(T1 a, T1 b) : PeopleT1(a), y(b) {}
};void test070802(void) {Peopleint p1(10);p1.myprint(p1);Manint m1(88, 99);m1.myprint(m1);cout m1.x m1.x endl;cout m1.y m1.y endl;
}多模板参数
//作为父类
template typename T1, typename T2
class People {private:/* data */int age;public:T1 x1;T2 x2;People() {} // Default constructorPeople(T1 a, T2 b) : x1(a), x2(b) {}void myprint(const PeopleT1, T2 pn);
};template typename T1, typename T2
void PeopleT1, T2::myprint(const PeopleT1, T2 pn) {cout myprint.x1 pn.x1 endl;cout myprint.x2 pn.x2 endl;
}template typename T9, typename T8
class Man : public PeopleT8, T9 { //报错 1和 2 一起就不会报错// class Man : public PeopleT9, T8 { // 3private:/* data */public:T9 y1;T8 y2;Man() {} // Default constructorMan(T9 a) : y1(a) {}Man(T9 a, T8 b): PeopleT8, T9(b, a), y1(b), y2(a) {} //报错 2 和 1 一起就不会报错// Man(T9 a, T8 b) : PeopleT9, T8(b, a), y1(b), y2(a) {}//OK 4 和 3 一起就不会报错// Man(T9 a, T8 b) : PeopleT9, T8(a, b), y1(b), y2(a) {} // OK 5 和 3 一起就不会报错
};void test070802(void) {Manint, double m1(66.66, 99.99);cout m1.x1 m1.x1 endl;cout m1.x2 m1.x2 endl;cout m1.y1 m1.y1 endl;cout m1.y2 m1.y2 endl;Mandouble, double m2(66, 99.99);cout m2.x1 m2.x1 endl;cout m2.x2 m2.x2 endl;cout m2.y1 m2.y1 endl;cout m2.y2 m2.y2 endl;
}本质上要理解模板的对应关系
类模板 继承 模板类类的成员函数/变量有使用模板 类模板 继承 普通类 类的成员函数和变量都没有使用模板 普通类 继承 模板类
学习记录侵权联系删除。 来源朱老师物联网大课堂