程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Member Function Templates(成員函數模板)

Member Function Templates(成員函數模板)

編輯:關於C語言

Member Function Templates翻譯成中文就是成員函數模板,這個東西我個人見得少,最初是在STL的auto_ptr源代碼裡面看到的,當時候也不是很明白;這幾天又翻了翻《More Effective C++》,正好看到上面介紹的比較詳細,就找了點資料總結一下。
為了更好的說明問題,我們自己定義一個Smart Pointer(智能指針,這裡只是示例,所以定義是不完整和不完善的),假設現在我們手上有這樣三個類:MusicProduct、CD、MP3,類之間的關系圖如下:

類圖
我們定義的智能指針SmartPtr如下:

template<class T>
class SmartPtr
{
public:
 explicit SmartPtr(T* realPtr = NULL) : pointee(realPtr){}
 
 T* operator->() const
 {
  return pointee;
 }
 
 T& operator*() const
 {
  return *pointee;
 }
private:
 T* pointee;
};
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved