![]() |
|
||||||||||||||
| | 网站首页 | 数据库教程 | web编程 | 服务器 | 程序设计 | | ||
|
||
|
||||||
| 在C++实现C#中的属性(Property)功能的尝试: MACRO篇(1) | ||||||
作者:佚名 文章来源:不详 点击数: 更新时间:2007-9-12 ![]() |
||||||
|
看了C++ templates一书以后,想用C++模拟实现C#中的属性功能。
注:在本文中,不考虑对属性进行任何指针类操作,包括对属性进行取址(&操作符)、求值(*操作符)等,也未对类型为指针的属性进行过测试。(当然按原理来说使用类型为指针的属性应该也没问题)
#ifdef USE_PROPERTY![]() #define PropertyDef(TYPE,NAME) class Property##TYPE##NAME{ public:![]() Property##TYPE##NAME():v(TYPE())...{}![]() inline TYPE operator=(TYPE ac)...{v=ac;return v;}![]() inline operator TYPE()...{return v;} private: TYPE v; }; Property##TYPE##NAME NAME;![]() #endif![]() ![]() 要使用的话,把这段代码插入类的头文件,并在这段代码之前define USE_PROPERTY,就可以使用了。而要添加一个属性,在类的定义中加入一行PropertyDef(ProerttyType, (ProerttyName)即可。如要加入一个int类型的属性speed,就插入一行PropertyDef(int,speed)即可。而对于用户而言,就像speed就是一个公共的int成员使用即可。读取,改写均没问题。 (待续) 本文来源:http://blog.csdn.net/purewinter/archive/2007/08/29/1764561.aspx
|
||||||
| 文章录入:admin 责任编辑:admin | ||||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | ||||||
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 网站地图 | 管理登录 | | |||
|