- Expert C++
- Vardan Grigoryan Shunguang Wu
- 221字
- 2021-06-24 16:34:07
Syntax
The syntax for creating a class template is as follows:
[export] template <template_parameter_list> class-declaration
Here, we have the following:
- template_parameter-list (see the link in further reading context [10]) is a non-empty comma-separated list of the template parameters, each of which is either a non-type parameter, a type parameter, a template parameter, or a parameter pack of any of those.
- class-declaration is the part that's used to declare a class that contains a class name and its body in curly brackets. By doing so, the declared class name also becomes a template name.
For example, we can define a class template, V, so that it contains all kinds of 1D data types:
template <class T>
class V {
public:
V( int n = 0) : m_nEle(n), m_buf(0) { creatBuf();}
~V(){ deleteBuf(); }
V& operator = (const V &rhs) { /* ... */}
V& operator = (const V &rhs) { /* ... */}
T getMax(){ /* ... */ }
protected:
void creatBuf() { /* ... */}
void deleteBuf(){ /* ... */}
public:
int m_nEle;
T * m_buf;
};
Once we have this class template, the compiler can generate classes during the instantiation process. For the reason we mentioned in the Function template subsection, we will avoid using the imprecise term template class in this book. Instead, we will use the class template.
推薦閱讀
- Cocos2d Cross-Platform Game Development Cookbook(Second Edition)
- Mastering OpenLayers 3
- Java多線程編程實戰指南:設計模式篇(第2版)
- Visual Studio 2012 Cookbook
- CentOS 7 Server Deployment Cookbook
- AWS Serverless架構:使用AWS從傳統部署方式向Serverless架構遷移
- 構建移動網站與APP:HTML 5移動開發入門與實戰(跨平臺移動開發叢書)
- Haxe Game Development Essentials
- MATLAB for Machine Learning
- 持續輕量級Java EE開發:編寫可測試的代碼
- Hands-On GUI Programming with C++ and Qt5
- QGIS Python Programming Cookbook(Second Edition)
- 區塊鏈項目開發指南
- Beginning PHP
- Moodle 3.x Developer's Guide