关于c++模板的一些问题

/***************************** 关于c++中模板类的一些说明***********************************

c++中模板是怎么定义及使用,特别是类模板问题.下面例子定义了一个模板类,再声明一个对象,进行测试.
在我看来,其实模板类同普通的类相似,不同之处在于,在类函数定义时都需有template < class T, int i >
 (注意此处没有分号),接着写TestClass< T,i >相当于我们的类是 TestClass< T,i > ,相比我们平常的类,
 可以理解为TestClass< T,i >是平常类加了参数,其他照写.类的定义与实现须在同一个文件下,如例子全
 写在fig.h中,如果在fig.h定义类,再用fig.cpp来实现类的话,则会报错.

/*********************************************************/

#include <iostream.h>
#include "fig.h"
int main()
{
	TestClass< int,10 > c(10);
	c.print();
}

// fig.h 
// define class testclass
#ifndef FIG_H
#define FIG_H
#include <iostream.h>

template < class T, int i > 
class TestClass {
public:
   TestClass( T num );    // 构造函数
   T buffer[i];           // 一个数组
   void print() const;    // 将结果打印
};

template < class T, int i > 
TestClass< T,i >::TestClass( T num )
{
	for( int j=0;j<i;j++)
		buffer[j] = num;
}
template < class T, int i > 
void TestClass<T,i>::print() const
{
		for( int j=0;j<i;j++)
		cout<<buffer[j]<<'\t';
}

#endif

转载于:https://my.oschina.net/delmore/blog/4774

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值