类模板语法

#include<iostream>
#include<string>
using namespace std;
 
//类模板
template<class nameType,class ageType> 
class Person
{
public:
	Person(nameType name,ageType age)
	{
		this->m_name=name;
		this->m_age=age; 
	}
	void showPerson()
	{
		cout<<this->m_name<<' '<<this->m_age;
	}
	nameType m_name;
	ageType m_age;
};
void test01()
{
	Person<string,int> p1("fbb",100);
	p1.showPerson();
}
int main()
{
	test01();
} 

### 模板语法的定义与用法 #### 定义 模板是一种泛型编程工具,允许开发者编写独立于类型的代码。通过模板机制,可以在不指定具体类型的情况下定义函数或类,并让编译器根据实际使用的类型自动实例化相应的代码[^2]。这种技术广泛应用于C++等支持静态多态的语言中。 #### 类模板 类模板使得我们可以为不同的数据类型创建统一接口的容器或者其他复杂的数据结构。例如下面展示了如何利用类模板来构建一个简单的数组: ```cpp template <typename T> class SimpleArray { private: T* data; int size; public: explicit SimpleArray(int s) : size(s), data(new T[s]) {} ~SimpleArray() { delete[] data; } T& operator[](int index); }; ``` 这里`T`代表任意合法的数据类型,当实例化这个类时就需要指明具体的类型: ```cpp SimpleArray<int> myIntArray(10); // 创建了一个整数简单数组对象 ``` [^1] #### 函数模板 函数模板则提供了另一种层次上的抽象能力——即操作行为也可以脱离特定的数据类型而存在。如下所示的一个非常基础的例子就是交换两个变量值的功能实现: ```cpp template<typename T> void swap(T &a, T &b){ T temp = a; a = b; b = temp; } ``` 这样无论输入的是什么类型的参数(只要该类型支持赋值运算),都可以正常工作[^3]: ```cpp std::string strA="hello",strB="world"; swap(strA,strB);// 字符串也能被顺利交换位置关系 ``` 此外还提到了关于模板特化的知识点,这是针对某些特殊情况下的优化措施或者是完全不一样的处理方式所提供的解决方案[^1]。比如上面提到过的`MyClass<int>`就是一个显式的全特化版本。 最后值得一提的是虽然表面上看模板像是增加了额外的工作负担但实际上它极大地提高了软件开发效率减少了重复劳动同时也增强了系统的灵活性和扩展性。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值