C++ 把struct 当作类试用

news/2024/7/8 2:06:26

          在看某个开源项目中,有这样一段代码,真心不知道这样是好是坏好处具体在哪里呢?希望各位看官,留下自己的看法吧!~

struct TDllProxy
{
	TDllProxy(LPCSTR szDllPath) : m_hModule(NULL)
	{
		m_hModule = LoadLibraryA(szDllPath);
	}
	~TDllProxy()
	{
		if(m_hModule)
			FreeLibrary(m_hModule);
		m_hModule = NULL;
	}

	FARPROC Get(LPCSTR szFuncName)
	{
		if(m_hModule)
		{
			return GetProcAddress(m_hModule, szFuncName);
		}
		return NULL;
	}
	HMODULE m_hModule;
};


         使用也很简单:

       

TDllProxy dll("anyone.dll");


        

	struct TListItem
	{
	public:
		TListItem()
		{
			dwFlags		=0;
			clrBg		=BACKGROUND_COLOR;
			clrBtmGapLine=RGB(234,233,225);
			nLeftmargin	=10;
			nTopMargin	=-1;
			bBold		=FALSE;
			nHeightAdd	=0;

			_isclapsed = FALSE;
		}
		~TListItem()
		{
			for(TListItemPtrs::iterator it=_clapsed_items.begin(); it!=_clapsed_items.end(); ++it)
				delete *it;
			_clapsed_items.clear();
		}
		
		int			nLeftmargin;
		int			nTopMargin;
		BOOL		bBold;
		int			nHeightAdd;
		DWORD		dwFlags;
		COLORREF	clrBg;
		COLORREF	clrBtmGapLine;
		TListSubItems subItems;
		
		BOOL _isclapsed;
		TListItemPtrs _clapsed_items;
		DWORD_PTR _itemData;
	};


  然后,作者这样写的目的是什么呢?C++ 语言把struct当类使用,具体的好处有哪些呢?

        

 

http://www.niftyadmin.cn/n/3094089.html

相关文章

haproxy代理设置及配置文件详解

haproxy代理配置:结果图:haproxy代理配置2方式:结果配置:Haproxy的配置文件由两部分组成:全局设定和对代理的设定,共分为五段:global、Default、frontened、backend、listen配置文件格式&#x…

web前端(二)

表格标签&#xff1a; <table> </table>按照这个顺序&#xff1a;一个可选的 <caption> 元素零个或多个的 <colgroup> 元素一个可选的 <thead> 元素下列任意一个&#xff1a;零个或多个 <tbody>零个或多个 <tr>一个可选的 <t…

git零散知识

集中式与分布式的差别&#xff1a; 集中式的服务器挂了所有人都挂了&#xff0c;因为完整仓库只存在服务器上&#xff0c;分布式如果github挂了你可以重新建一个服务器&#xff0c;然后把任何一个人的仓库clone过去 一句话总结&#xff1a;分布式版本控制的每个节点都是完整仓库…

mac 卸载 node

系统升级到 Sierra 之后&#xff0c;npm 经常出问题&#xff0c;最终把 node 卸载了&#xff0c;安装了新版本。mac 卸载 node 比较麻烦&#xff0c;stackoverflow 上面找到一个方法还不错&#xff0c;特地记录下来&#xff0c;代码如下&#xff1a; 首先运行脚本 lsbom -f -l …

BSTR 数据类型

COM 中除了使用一些简单标准的数据类型外&#xff0c;字符串类型需要特别重点地说明一下。因此 COM 设计者引入了 BASIC 中字符串类型的表示方式---BSTR。BSTR 其实是一个指针类型&#xff0c;它的内存结构是&#xff1a;&#xff08;输入程序片段 BSTR p ::SysAllocString(L&…

HTML5_01之表单新特性

1、WebStorm快捷键&#xff1a; CtrlAlt(向下方向键)&#xff1a;快速复制当前行 Alt(向上/下方向键)&#xff1a;移动当前行 CtrlD&#xff1a;删除当前行 Ctrl/&#xff1a;快速&#xff08;取消&#xff09;注释当前行 CtrlAltL&#xff1a;格式化当前文档2、HTML5九大新特性…

owlCarousel 用法心得1 -20170405

1、触发事件 var owl1$(.inews_list);owl1.owlCarousel({items:3,stopOnHover:false,pagination:false,autoPlay:true});$(.icont4 .prev).click(function(event) {owl1.trigger(owl.prev);});$(.icont4 .next).click(function(event) {owl1.trigger(owl.next);});2、滚动子元素…