欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > C++将模板类用作参数

C++将模板类用作参数

2024/10/25 9:40:27 来源:https://blog.csdn.net/qq_40135848/article/details/140084205  浏览:    关键词:C++将模板类用作参数
#include <iostream>         // 包含头文件。
using namespace std;        // 指定缺省的命名空间。template <class T, int len>
class LinkList             // 链表类模板。
{
public:T*   m_head;          // 链表头结点。int  m_len = len;   // 表长。void insert()     { cout << "向链表中插入了一条记录。\n"; }void ddelete()  { cout << "向链表中删除了一条记录。\n"; }void update()   { cout << "向链表中更新了一条记录。\n"; }
};template <class T, int len>
class Array                // 数组类模板。
{
public:T*   m_data;          // 数组指针。int  m_len = len;   // 表长。void insert()     { cout << "向数组中插入了一条记录。\n"; }void ddelete()  { cout << "向数组中删除了一条记录。\n"; }void update()   { cout << "向数组中更新了一条记录。\n"; }
};// 线性表模板类:tabletype-线性表类型,datatype-线性表的数据类型。
template<template<class, int >class tabletype, class datatype, int len>
class LinearList
{
public:tabletype<datatype, len> m_table;     // 创建线性表对象。void insert()    { m_table.insert(); }         // 线性表插入操作。void ddelete() { m_table.ddelete(); }      // 线性表删除操作。void update()  { m_table.update(); }      // 线性表更新操作。void oper()     // 按业务要求操作线性表。{cout << "len=" << m_table.m_len << endl;m_table.insert();m_table.update();}
};int main()
{// 创建线性表对象,容器类型为链表,链表的数据类型为int,表长为20。LinearList<LinkList, int, 20>  a;   a.insert();   a.ddelete();   a.update();// 创建线性表对象,容器类型为数组,数组的数据类型为string,表长为20。LinearList<Array, string, 20>  b;b.insert();   b.ddelete();   b.update();
}

推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/3Zqhgt

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com