您的位置:首页 > 编程语言 > C语言/C++

c++之模板

2017-12-20 18:31 127 查看
模板:

1,函数模板

template <class(typename) T, ...(非类型参数,int var)>

T add(T &a)

{
//函数体

}

非类型参数只能是,整型,指针,引用。以上T可以有对应的默认值

2,类模板

template <class T>

class A

{
//类体

}

template <class T,...>

void A<T>::func()

{
//函数体

}

以上:可以有非类型参数,T可以有默认值。

3,友元函数模板如下。如下包括模板,友元,重载,可以好好理解一下。

template <class T = int>
class A
{
public:
A(int);
template <class M, class N>
friend M operator+(A<M> &, A<N> &);

private:
T p;

};
template <class H>
A<H>::A(int num)
{
p = num;
}

template <class M, class N>
M operator+(A<M> &c, A<N> &d)
{
return (c.p+d.p);
}

int main(int argc, char *argv[])
{
A<char> a(65);
A<int> b(3);

cout << a+b << endl;

return 0;
}
注意:T,H,M,N都是形参名。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ 模板