关于c++模板的一些问题
2010-05-20 22:11
281 查看
/***************************** 关于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
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
相关文章推荐
- 关于Borland C++BuilderX的一些问题的回答
- 关于C++模板封装的问题(关于C++模板参数的声明)
- 关于C++模板和重载的小问题
- 《Visual C++ 2010入门教程》系列三:关于C++的一些问题
- c++中 关于字符串的一些需要注意的问题
- 关于一些c/c++小问题的总结
- 关于在C/C++中对于输入以换行结束的一些问题
- 关于嵌入式C&&C++的一些编程问题(三)
- 《Visual C++ 2010入门教程》系列三:关于C++的一些问题
- 关于杂碎的一些c++多线程编程问题,由winapi到boost::thread
- 关于c++模板的一些东西
- 关于C++的一些问题的整理
- 关于c++ 中while(cin>>temp)相关问题搜集的一些知识
- c++中关于const的一些细节问题
- 关于嵌入式C&&C++的一些编程问题(四)
- C/C++关于数据类型的一些问题
- 关于C++模板和重载的小问题
- 《Visual C++ 2010入门教程》系列三:关于C++的一些问题
- c++关于类型强转后作为引用参数的一些问题
- 关于oj上c++与g++的区别以及一些常见的问题