Search

2011年9月29日 星期四

有別於C++ Templates - The Complete Guide上的靜態多型



#include <iostream>

template<typename T>
class Base
{
   public:
      void Print();
      void Try(){
T *obj = static_cast<T*>(this);
obj->Print();
      }
};

class D1:public Base<D1>
{
   public:
      void Print(){std::cout << "D1" << std::endl;}
};

class D2:public Base<D2>
{
   public:
      void Print(){std::cout << "D2" << std::endl;}
};

int main(int argc,char**argv)
{
   D1 d1;
   D2 d2;

   d1.Try();
   d2.Try();

   return 0;
}


跟C++ Templates - The Complete Guide第十四章的靜態多型一樣,都是依靠傳入的template argument型別來決定,然後今天早上看到這篇才又想起來,基本上優缺點跟十四章的靜態多型一樣,不過寫成Class Template繼承體系又多了可以把實作跟介面分開的優點,書上是做Function Template。

2011年9月24日 星期六

近況啊啊啊

最近有比較忙,主要都跑一堆流程ORZ,然後最近有時間都看一些Ring0 Hook的資料,前幾天又裝VS2008 + WDK跟以前用VS2005 + DDK參數設定有點不一樣,省時間就用VisualDDK去設定比較快,但是要注意compile時路徑不能有空白,不然要自己改參數,話說台中生活半個月其實沒有比高雄差,不過自己住才發現飲用水讓我很困擾啊啊,一個禮拜買六瓶小七的平裝水太傷本了...,現在打算買電磁爐自己燒開水,總之接下來blogger想寫的文章(wxWidget等等tag)會延後搞不好要到寒假XD