C++之类的相关知识

一、函数模板

重载:参数个数不同,类型不同可以构成重载

将数据类型当参数进行传递(将数据类型和算法进行分离)

//函数模板:用template去声明模板、<typename 类型名称1,typename 类型名称2>-----模板声明只对dang当前函数有效

1.mySwap(a,b) //隐式调用、不指名类型 让编译器自动推导

                                       cout ----标准输出流变量

2.函数模板可以隐式调用,但不支持隐式的类型转换

     强制转换:  int a = 10;int b = 20; char c = 'A'

     print<int>(a,c)

3.函数模板和普通函数都可以调用的情况下,优先diao调用函数模板--可以通过<   >强制调用模板函数,内部类型可写可不写。

4.模板机制实现,两次编译

   1.对模板自身编译

   2.在调用的位置对具体类型进行编译

二、类模板

template<typename .T>

class TestA

{

    public:

    TestA(T a)

{

    this->a = a;

}

void print()

{

cout << a <<endl;

}

private:

T  a

};

栈------局部变量

堆------自己申请

数据区---静态、局部变量

代码区---执行代码/常量

1.类模板的派生和继承

2.类模板的使用

类成员的函数实现:(1)在内部  (2)在外部

类模板成员函数可以在内部实现,包括友元函数都可以在内部实现

!!!注意友元函数即使在类的内部实现,它也是一个友元函数,不是类的成员函数

《运算符重载会使用友元函数打破封装》

《类里如果有友元函数一般放在类的开头》

3.在类的外部实现类模板

*类模板成员函数如果在lei类的外部进行实现,必须全部写成函数模板

*类的后面要跟模板参数列表

*类的内部<T>可加可不加,但是在外部一定要加

*运算符重载<  >作为友元函数使用的时候在进行友元声明的时候在函数名和

间加<T >

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值