栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++之模板

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++之模板

  • C++中带变量模板

如何理解带变量模板?
下面给出形式:

template     //这里size是变量
class MyArray{
public:
	MyArray()
	{
		pMem = new _Ty[size];
	}
	_Ty&	operator[](int index)
	{
		return pMem[index];
	}

protected:
	_Ty* pMem;
};


完成带变量的模板定义该如何使用它呢?

MyArray iArray; // 正确使用

int num = 3;
MyArray iArray2; //错误 不能传入变量

//这里常属性的变量
const size_t size =4;
MyArray iArray; // 正确使用
  • 函数模板特殊化
    就是函数模板的重载
    解决普通函数和函数模板同名的情况:
int Max(int a, int b)
{
	cout << "普通函数被调用" << endl;
	return a > b ? a : b;
}

template
_Ty Max(_Ty parm1, _Ty parm2)
{
	cout << "函数模板被调用" << endl;
	return parm1 > parm2 ? parm1 : parm2;
}

template
_Ty1 Max(_Ty1 a, _Ty2 b)
{
	cout << "函数模板重载被调用" << endl;
	return a > b ? a : b;
}

调用情况如下:

    Max(1, 2);  //函数模板和普通函数都可以使用时,优先调用普通函数
	Max(1, 2);//显示调用 调用函数模板

	Max(1.1, 2);  //优先调用类型一致的函数
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/873561.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号