学习WTL时,发现其窗口实现模式采用ATL窗口实现方式,于是对ATL窗口实现机制研究一下。
其主要思想还是继承和模板,避免需函数导致运行时类结构增大。利用控制台程序模拟如下:
#include <iostream>
template<class T>
class A
{
public:
A()
{
}
virtual ~A()
{
}
void Say()
{
(static_cast<T*>(this))->Say();
}
};
class DeriveA : public A<DeriveA>
{
public:
DeriveA() : A<DeriveA>()
{
}
void Say()
{
std::cout << "Hello, World!" << std::endl;
}
};
int main(int argc, char* argv[])
{
A<DeriveA>* pA = new DeriveA();
pA->Say();
delete pA;
return 0;
}
主要通过基类的this指针识别对象。
posted on 2005-12-20 16:32
万连文 阅读(1431)
评论(5) 编辑 收藏 引用 所属分类:
ATL