Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >c++模板学习08之类模板与继承

c++模板学习08之类模板与继承

作者头像
大忽悠爱学习
发布于 2021-03-02 08:55:55
发布于 2021-03-02 08:55:55
60700
代码可运行
举报
文章被收录于专栏:c++与qt学习c++与qt学习
运行总次数:0
代码可运行

类模板与继承

当类模板碰到继承时,需要注意以下问题:

1.当子类继承的父类是一个类模板时,子类在声明的时候,需要指定出父类中T的类型 2.如果不指定,编译器无法给子类分配内存 3.如果想灵活指定出父类中的T类型,子类也需要变为类模板

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<iostream>
#include<string>
using namespace std;
//类模板与继承
template<class T>
class Baba 
{
public:
	T m;
	void fun()
	{
		cout << "父亲类中T的类型为:"<<typeid(T).name() << endl;
	}
};
//1.当子类继承的父类是一个类模板时,子类在声明的时候,需要指定出父类中T的类型
class son :public Baba<int>
{
public:

	void fun1() {
		cout << "儿子" << endl;
	}

};
//2.如果想灵活指定出父类中的T类型,子类也需要变为类模板
template<class T1,class T2>
class Son :public Baba<T1>
{
public:
	T2 age;
	void fun2() 
	{
		cout << "T1的类型为:" << typeid(T1).name() << endl;
		cout << "T2的类型为:" << typeid(T2).name() << endl;
	}
};
void test()
{
	son s1;
	s1.fun();
	s1.fun1();
	Son<char,int> S1;
	S1.fun();
	S1.fun2();
}
int main()
{
	test();
	system("pause");
	return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/02/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
c++类模板与继承
当类模板碰到继承时,需要注意一下几点: 1.当子类继承的父类是一个类模板时,子类在声明的时候要指定出父类中的类型; 2.如果不指定,编译器无法给子类分配内存; 3.如果要灵活指定父类中的T的类型,子类也需要变成模板类; #include<iostream> using namespace std; template<class T> class Base { public: T m; }; class Son1 :public Base<int> { }; template<class T1,c
西西嘛呦
2020/08/26
8010
C++泛型编程,模板(二)类模板
总结:类模板和函数模板语法相似,在声明模板template后面加类,此类称为类模板
CtrlX
2022/09/26
1.5K0
C++ 类模板与继承
类模板继承需要注意: 当子类继承父类是一个类模板时,子类在声明的时候,要指定出父类的中 T 的类型; template<class T> class Base { public: T m; }; class Son : public Base<int> { // 必须要知道父类中的 T 的具体类型,才能被子类继承 }; void test() { Son s; } int main() { test(); return 0; } 如果不指定,编译器无法给子类分配内存;
耕耘实录
2022/05/09
1K0
【C++】泛型编程 ⑧ ( 类模板继承语法 | 普通类 继承 类模板语法 | 类模板 继承 类模板语法 | 继承类模板必须指定具体的类型参数列表 | 继承 类模板 必须重写构造函数 )
类模板子类 与 普通类子类 区别就是 , 类模板子类 需要在尖括号中指定 具体的 类型参数列表 的 数据类型 ;
韩曙亮
2023/11/21
1.9K0
【C++】泛型编程 ⑧ ( 类模板继承语法 | 普通类 继承 类模板语法 | 类模板 继承 类模板语法 | 继承类模板必须指定具体的类型参数列表 | 继承 类模板 必须重写构造函数 )
c++模板学习08之类模板对象做函数参数
#include<iostream> #include<string> using namespace std; //类模板对象做函数参数 template<class T1,class T2> class Person { public: Person(T1 name, T2 age) :name(name),age(age){} T1 name; T2 age; void showPerson() { cout << "姓名: " << name << " 年龄:" << age <<
大忽悠爱学习
2021/03/02
7730
C++模板总结
模板(Template)指 C++ 程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计。C++ 的标准库提供许多有用的函数大多结合了模板的观念,如 STL 以及 IO Stream。模板是 C++ 支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。
C语言与CPP编程
2021/12/10
1.4K0
C++模板总结
【C++】继承
在社会关系中,一个人往往会拥有不同的身份,基于不同身份,有用不同的信息,比如当学生有学号,成为工人有工号等,可能会有不同的外号,但是基于人的最根本的身份,他们都要自己唯一的名称、性别等属性。
ZLRRLZ
2024/12/13
1370
【C++】继承
C++ —— 关于继承(inheritance)
使用类模版模拟实现一个栈,可以使用vector/list/deque来当做底层容器,核心就是类模版的继承
迷迭所归处
2024/11/19
1190
C++ —— 关于继承(inheritance)
C++初阶:入门泛型编程(函数模板和类模板)
现在就轮到泛型编程出场了:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。
是Nero哦
2024/02/01
2970
C++初阶:入门泛型编程(函数模板和类模板)
C++ 类模板实例化对象,向函数传参的方式
C++类模板实例化对象,向函数传参的方式一共有3种: 指定传入的类型:直接显示对象的数据类型; #include<iostream> #include<string> using namespace std; template<class T1, class T2> class Demo{ public: T1 s_name; T2 i_age; Demo(T1 name, T2 age); void show(){ cout<<"Name: "<< s_n
耕耘实录
2022/05/09
1.3K0
c++模板学习09之类模板函数类外实现
类模板函数类外 类模板的构造函数在类外实现 #include<iostream> #include<string> using namespace std; //类模板与继承 template<class T> class Baba { public: Baba(); }; //Baba类模板的构造函数在类外实现 //第一种写法 Baba<int>::Baba() { cout << "Baba的继承函数调用" << endl; } //第二种写法 template<class T> Baba<T>:
大忽悠爱学习
2021/03/02
9500
【C++】继承
继承(inheritance)机制是⾯向对象程序设计使代码可以复⽤的最重要的⼿段,它允许我们在保持原有类特性的基础上进⾏扩展,增加⽅法(成员函数)和属性(成员变量),这样产⽣新的类,称派⽣类。继承 呈现了⾯向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的函数层次的复⽤,继承是类设计层次的复⽤。
用户11375356
2024/11/22
1420
【C++】继承
C++进阶
建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。
全栈程序员站长
2022/07/13
5960
C++之函数模板的深入理解学习总结
在昨天的文章里面,我们给大家简单的分享了关于c++里面的函数模板的概念,通过代码示例,我们对函数模板的优势有了一个比较清楚的认识。咋们今天继续来深入学习函数模板。以下内容是今天知识学习总结笔记。
用户6280468
2022/03/21
2740
C++之函数模板的深入理解学习总结
c++之类模板对象作函数参数
三种方式: 1.指定传入的类型(这种最常用) 2.参数模板化 3.整个类模板化 #include<iostream> using namespace std; template<class T1,class T2> class Person { public: T1 name; T2 age; Person(T1 name, T2 age) { this->name = name; this->age = age; } void sh
西西嘛呦
2020/08/26
8380
c/c++问题集四
多重继承,放在第一个有虚函数指针基类的地方,如果基类都没有虚函数,就是特属子类的虚函数指针
_咯噔_
2022/03/31
8450
c++模板学习10之类模板分文件编写
问题:类模板中成员创建时机是在调用阶段,导致分文件编写时链接不到 解决方式1:直接包含.cpp源文件 p.h
大忽悠爱学习
2021/03/02
9810
初步C++类模板学习笔记
实现:在上课时间的定义给它的一个或多个参数,这些参数代表了不同的数据类型。 –>抽象的类。
全栈程序员站长
2022/07/18
3130
㉿㉿㉿c++模板的初阶(通俗易懂简化版)㉿㉿㉿
就像是用同一个模具,当放进去的蛋糕原料不同,那么生成的蛋糕种类也不同一样,这里形象的把类型比作原料;而又可以充分解释类模版和模版类的关系,也就是模具和蛋糕的关系,利用类模版具体化出模版类来(以下会涉及讲到)。
羑悻的小杀马特.
2025/01/23
1080
㉿㉿㉿c++模板的初阶(通俗易懂简化版)㉿㉿㉿
C++之类模板的深入学习总结
注解:当需要重载函数模板时,优先考虑使用模板特化;当模板特化无法满足需求,再使用函数重载
用户6280468
2022/03/21
2730
相关推荐
c++类模板与继承
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验