鱼C论坛

 找回密码
 立即注册
查看: 1138|回复: 0

[技术交流] C++旅程第10站——类模板1

[复制链接]
发表于 2020-5-28 22:05:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Knowledge speaks,but wisdom listens.         —— Jimi Hendrix
                                                                                       类模板
类模板作用:
  建立一个通用的类,类中的成员、数据类型可以不具体制定,用一个虚拟的类型来代表

语法:
template<typename T>
类

template——声明创建模板
typename——表明其后面的符号是一种数据类型,可以用class代替
T——通用的数据类型,名称可以替换,通常为大写字母
#include<iostream>
#include<string>

using namespace std;

//类模板 
template<class Nametype ,class Agetype>
class Animal
{
public:
        Animal(Nametype name,Agetype age)
        {
                this->m_name = name;
                this->m_age = age;
        }        
        
        void show()
        {
                cout << "name : " << this->m_name << endl;
                cout << "age : " << this->m_age << endl;
        }
        
        Nametype m_name;
        Agetype m_age;
};

void test1()
{
        //指定Nametype->string  Agetype->int 
        Animal<string,int> p1("猫咪",11);
        p1.show();
}

int main()
{
        test1();
        
        
        return 0;
}
类模板与函数模板区别有两点:
1、类模板没有自动类型推导的使用方式
2、类模板在模板参数列表中可以有默认参数
#include<iostream>
#include<string>

using namespace std;

//类模板 
template<class Nametype ,class Agetype = int>
class Animal
{
public:
        Animal(Nametype name,Agetype age)
        {
                this->m_name = name;
                this->m_age = age;
        }        
        
        void show()
        {
                cout << "name : " << this->m_name << endl;
                cout << "age : " << this->m_age << endl;
        }
        
        Nametype m_name;
        Agetype m_age;
};

void test1()
{
        //指定Nametype->string  Agetype->int 
        Animal <string,int> p1("猫咪",11);// 对   必须使用显示指定类型的方式,使用类模板 
        Animal p("小猪仔",10);//错   类模板使用的时候不可以用自动类型推导 
        
        p1.show();
         
        Animal <string> p2("羊驼",9);//类模板中的模板参数列表,可以指定默认参数
        p2.show();
}

int main()
{
        test1();
        
        
        return 0;
}
                                               渣渣加油中.................................

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 07:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表