友元模板类使用
2016-06-20 00:00
246 查看
前言:
ATL/WTL中 程序设计中用模板类来附加新属性和实现接口。为了不破坏宿主类对外的封装性,需要定义友元类来解决这个问题。
#include "stdafx.h"
template<class T>
class TemplateDemo1
{
public:
TemplateDemo1()
{
}
public:
void Do()
{
T* pThis = static_cast<T*>(this);
pThis->iUncoun = 120;
}
};
class __declspec(novtable) Demo1 : public TemplateDemo1<Demo1>
{
public:
friend class TemplateDemo1<Demo1>;
Demo1()
{
}
public:
int GetIValue()
{
return iUncoun;
}
private:
int iUncoun;
};
int _tmain(int argc, _TCHAR* argv[])
{
Demo1 demo;
demo.Do();
printf("%d", demo.GetIValue());
return 0;
}
ATL/WTL中 程序设计中用模板类来附加新属性和实现接口。为了不破坏宿主类对外的封装性,需要定义友元类来解决这个问题。
#include "stdafx.h"
template<class T>
class TemplateDemo1
{
public:
TemplateDemo1()
{
}
public:
void Do()
{
T* pThis = static_cast<T*>(this);
pThis->iUncoun = 120;
}
};
class __declspec(novtable) Demo1 : public TemplateDemo1<Demo1>
{
public:
friend class TemplateDemo1<Demo1>;
Demo1()
{
}
public:
int GetIValue()
{
return iUncoun;
}
private:
int iUncoun;
};
int _tmain(int argc, _TCHAR* argv[])
{
Demo1 demo;
demo.Do();
printf("%d", demo.GetIValue());
return 0;
}
相关文章推荐
- 一个人哭
- wtl_duilib中实现子窗口拖动
- WTL实现 屏幕右下角弹出窗口 内嵌IE
- 什么是Qt
- InitializeComponent()有什么作用?
- WTL学习总结
- IOCP简单模型
- C++ reinterpret_cast汇编说明
- Golang使用pkg-config自动获取头文件和链接库的方法
- 重装WinXP系统之前 病毒库的备份方法
- 用gSOAP开发Web Service程序
- 汇编浮点运算指令集
- 情为何物
- 动态库中单例一记
- 实现的ATL(AtlSimpleArray)数组任意插入辅助函数
- WTL自绘滚动控件
- 爱情故事(1)
- 系统服务创建和服务-win32汇编完整版
- 关于Qt
- 窗口收不到WM_MOUSELEAVE