您好,登錄后才能下訂單哦!
本篇文章為大家展示了C++模板使用方法是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
C++編程語言中的模板應用在一定程度上大大提高了程序開發的效率。我們為大家詳細講解一下有關C++模板的基本概念。
前段時間重新學習C++,主要看C++編程思想和C++設計新思維。對模版的使用有了更進一層的了解,特總結如下:
下面列出了C++模板的常用情況:
1. C++模板類靜態成員
template < typename T> struct testClass { static int _data; }; template< > int testClass< char>::_data = 1; template< > int testClass< long>::_data = 2; int main( void ) { cout < < boolalpha < < (1==testClass< char>::_data) < < endl; cout < < boolalpha < < (2==testClass< long>::_data) < < endl; }
2. C++模板類偏特化
template < class I, class O> struct testClass { testClass() { cout < < "I, O" < < endl; } }; template < class T> struct testClass< T*, T*> { testClass() { cout < < "T*, T*" < < endl; } }; template < class T> struct testClass< const T*, T*> { testClass() { cout < < "const T*, T*" < < endl; } }; int main( void ) { testClass< int, char> obj1; testClass< int*, int*> obj2; testClass< const int*, int*> obj3; }
3.類模版+函數模版
template < class T> struct testClass
{
void swap( testClass< T>& ) { cout < < "swap()" < < endl; }
};
template < class T> inline void swap( testClass< T>& x,
testClass< T>& y ){
x.swap( y );
}
int main( void )
{
testClass< int> obj1;
testClass< int> obj2;
swap( obj1, obj2 );
}
4. 類成員函數模板
struct testClass { template < class T> void mfun( const T& t ) { cout < < t < < endl; } template < class T> operator T() { return T(); } }; int main( void ) { testClass obj; obj.mfun( 1 ); int i = obj; cout < < i < < endl; }
5. 缺省C++模板參數推導
template < class T> struct test { T a; }; template < class I, class O=test< I> > struct testClass { I b; O c; }; void main() { }
6. 非類型C++模板參數
template < class T, int n> struct testClass { T _t; testClass() : _t(n) { } }; int main( void ) { testClass< int,1> obj1; testClass< int,2> obj2; }
7. 空模板參數
template < class T> struct testClass;
template < class T> bool operator==( const testClass< T>&,
const testClass< T>& ){
return false;
};
template < class T> struct testClass
{
friend bool operator== < >
( const testClass&, const testClass& );};
void main()
{
}
8. template template 類
struct Widget1 { template< typename T> T foo(){} }; template< template< class T>class X> struct Widget2 { }; void main() { cout< < 3 < < '\n'; }
上述內容就是C++模板使用方法是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。