ATL窗口继承实现机制
2005-12-20 16:38
246 查看
学习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[])
{
DeriveA a;
a.Say();
return 0;
}主要通过基类的this指针识别对象。
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[])
{
DeriveA a;
a.Say();
return 0;
}主要通过基类的this指针识别对象。
相关文章推荐
- [置顶] ATL窗口thunk机制的剖析与实现
- 使用NSProxy实现消息转发机制,模拟多重继承
- Javascript 继承机制和构造方法链实现
- 阿里巴巴技术文章分享 Javascript继承机制的实现
- 用反射机制和prototype实现继承
- JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
- prototype-1.3.1框架中的类继承实现机制
- 【转】C语言实现C++面向对象的封装、继承、多态机制
- asp.net 实现QQ在线聊天程序中javascript的窗口注册机制
- c++虚函数实现机制以及类继承中的内存分布
- qt实现子窗口继承父窗口背景图片
- 第四篇 ANDROID窗口管理服务实现机制--远程代理模式
- ECMAScript 继承机制实现
- 基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
- javascript继承机制的实现
- wxPython窗口的继承机制实例分析
- js函数(类)的继承机制的设计与实现(五)
- 【Android 源码解析】应用窗口Window的实现机制
- Java中的接口interface实现、与继承extends机制。