欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-01-27 09:47:22
...
/***************************** 关于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