#include<iostream>
using namespace std;
//函数调用
//template<typename T>
//
//template<typename 数据类型参数标识符>
//
//<返回类型><函数名>(参数表)
//
//{
//
// 函数体
//
//}
//函数模板调用分为隐士调用和显示调用
template<typename T>
inline void Swap(T & A, T &B)//对于系统频繁调用的函数可以考虑声明为内联函数,内联函数在函数调用时直接展开,函数代码少的可以直接展开,提高调用效率。
{
A = A + B;
B = A - B;
A = A - B;//不使用第三个变量实现两个数之间的交换
}
//template<参数名列表>
//class 类名 {
// //类的说明
//};
template<typename T>
class MyClass
{
public:
MyClass();
void Swap1(T & A, T &B);//对于系统频繁调用的函数可以考虑声明为内联函数,内联函数在函数调用时直接展开,函数代码少的可以直接展开,提高调用效率。
//{
// A = A + B;
// B = A - B;
// A = A - B;//不使用第三个变量实现两个数之间的交换
//}
~MyClass();
T m_Num1;
T m_Num2;
private:
};
//template<class T>
//函数返回值 类名<T>::函数
template<class T>
void MyClass<T>::Swap1(T & A, T &B)//类模板成员函数在类外实现时也需要固定的格式
{
A = A + B;
B = A - B;
A = A - B;//不使用第三个变量实现两个数之间的交换
}
template<class T>
MyClass<T>::MyClass()
{
}
template<class T>
MyClass<T>::~MyClass()
{
}
int main()
{
int a = 1;
int b = 2;
//函数模板调用分为两种
Swap<int>(a, b);//显示调用
Swap(a, b);//隐式调用
// 类模板调用
MyClass<int> a1;
a1.m_Num1 = 1;
a1.m_Num2 = 2;
a1.Swap1(a1.m_Num1, a1.m_Num2);
}
在这里插入代码片
函数模板,类模板的格式以及内联函数的简单使用和说明
最新推荐文章于 2022-07-27 09:18:14 发布