﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-万星星</title><link>http://www.cppblog.com/wlwlxj/</link><description>&lt;div&gt;一个吃软饭的男人!!!!!我只想写程序####&lt;br&gt;师夷之技以制夷   吾尝终日而思矣,不如须臾之所学也&lt;br&gt;喝碗孟婆汤,踏过奈何桥,涅槃&lt;/div&gt;
I've been programming since I was 21. Started with C++, looked at Java, keen on Visual Basic and Visual C++, thinking about .NET and C#.^_^,very ridiculous.</description><language>zh-cn</language><lastBuildDate>Sun, 20 Jul 2008 04:19:31 GMT</lastBuildDate><pubDate>Sun, 20 Jul 2008 04:19:31 GMT</pubDate><ttl>60</ttl><item><title>转  湖北人，你到底患了什么病</title><link>http://www.cppblog.com/wlwlxj/archive/2008/03/26/45428.html</link><dc:creator>万连文</dc:creator><author>万连文</author><pubDate>Wed, 26 Mar 2008 06:46:00 GMT</pubDate><guid>http://www.cppblog.com/wlwlxj/archive/2008/03/26/45428.html</guid><wfw:comment>http://www.cppblog.com/wlwlxj/comments/45428.html</wfw:comment><comments>http://www.cppblog.com/wlwlxj/archive/2008/03/26/45428.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/wlwlxj/comments/commentRss/45428.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wlwlxj/services/trackbacks/45428.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
&nbsp;&nbsp;&nbsp; <font style="BACKGROUND-COLOR: #ffffff" face=宋体>中国人很少有不恋家的，湖北是生我养我的地方，我自然热爱这块神奇的土地。自从上个世纪八十年代中期以来，中国的改革浪潮一波接一波地推进着，先建特区，然后带动沿海的全面发展，慢慢地珠江三角洲站在改革开放的前沿，变得举世闻名了；再就是大上海恢复了昔日的王者之气，一跃而起成为东方的国际大都市，而长江三角洲也日新月异地变化着，不几年间便富甲天下。这几年，中央政府决策 &#8220;开发大西北&#8221;，有些偏僻的西北地区一下成为举世瞩目的焦点。可以想像，不出两个五年计划，大西北必有翻天覆地的变化。<br>&nbsp;&nbsp;&nbsp; 而我们处在九省通衢的湖北，在上个世纪九十年代，便响亮地提出：&#8220;湖北从中部崛起！&#8221;多年过去，湖北的确从中部崛起了，但中部崛起却成了湖北人发福的象征——因为没有进取，养尊处优，都变得大腹便便了。</font>
<p><font style="BACKGROUND-COLOR: #ffffff" face=宋体>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="FONT-SIZE: 16px; FONT-FAMILY: 黑体">1、衰败的另一端总是辉煌<br style="FONT-FAMILY: "><br></font>&nbsp;&nbsp;&nbsp;&nbsp; 其实湖北有很好的工业基础，首先看重工业，随手举来，便有二汽、武钢、武锅还有武重，这些在计划经济时代令湖北人引以为豪的大型企业，是中部企业的庞然大物、国家经济建设的倚重者。现在它们变得怎么样了，我无法从内部深入了解。只是记得，有一个朋友的朋友的酒店开张大吉，我被请去试餐，以便今后多加关照。我得知酒店在武锅厂内，这个如雷贯耳的名字一出，忍不住好奇心大发，因为我还听说前国家领导人曾是这里的技术员。我便提前去武锅转了一圈，除了进入时，那宽阔的马路和气势雄伟的大门默默地向路人诉说着昔日的辉煌外，厂内显得十分空旷，绕了一圈觉行人稀少。至右侧，一排平房处，就是朋友的朋友开的酒店。互敬酒时，得知店主原是这个大型企业的处长，现开个酒店聊以度日，不胜感慨。<br>&nbsp;&nbsp;&nbsp;&nbsp; 多年前，我们常到武重一条街去吃牛杂碎汤，这是武重职工开的，他们把办武重的聪明才智用来开一个个小店子，开得有声有色的。我常被朋友半夜提溜去这里喝点靠杯酒。我有时也会想想这些改行的店老板，不知他们经历了怎样的心路历程。而我们的武钢，尽管它尚在正常运转之中，但我们这些局外人，从一些常见的新闻中，总是听到诸如鞍钢、马钢和首钢的一些新闻，看到一些同类企业的举措，我这个湖北人，脑海里会冒出一个念头：&#8220;武钢呢，武钢哪儿去了。&#8221;从同类企业向外发布的信息来看，武钢便显得默默无闻多了，不知是它故意低姿态的谦虚，还是有太多的难言之隐无法向世人言说。<br>&nbsp;&nbsp;&nbsp;&nbsp; 然后我们把时间倒回，在上个世纪的改革开放之初，湖北表现得仍是非常活跃的。我还记得，当时风传物价要上涨，当时第一个念头，就是买点紧俏货。决定买一台沙松冰箱，托了许多人，找了许多关系，居然难以搞到。在十分沮丧之余，有个多年未见的朋友找来，我向他闲谈了自己的苦恼，他告诉自己夫人在沙松冰箱的分店里工作，我不由得喜出望外，大有踏破铁鞋无览处，得来全不费功夫的感叹。后来我迁居南京，把这台冰箱带到南京，用了好长时间，并且在南京还可以找到它的维修站。<br>&nbsp;&nbsp;&nbsp;&nbsp; 沙松冰箱只是一个特例，算起来，湖北在上个世纪八十年代，有几大家电产品的名牌享誉全国，比如莺歌牌彩电、南波希岛冰箱、鹦鹉牌录音机、荷花牌洗衣机。湖北人后来编了顺口溜说：&#8220;莺歌哑了，希岛崩了，鹦鹉飞了，荷花谢了。&#8221;<br>让我们再来看看湖北的地方经济，仅以一个著名的广告词&#8220;活力28，沙市日化&#8221;为例。在湖北的沙市，有一段时间的轻工业产品生产和销售，其品牌和产品大大有名，沙市也一度有&#8220;小香港&#8221;之称。但是，你看湖北人为了把这个&#8220;小香港&#8221;折腾熄火，先是把它与荆州合并一市，取名曰：&#8220;荆沙市&#8221;，不久，有人认为荆州乃一古城名，这么改名不利于旅游业的发展，便又改回&#8220;荆州市&#8221;了。这么捣鼓对政府来说，没有什么问题，只是属于调整改造提高吧，可是却把&#8220;沙市日化&#8221;这四个响亮的广告词永远地送进历史的尘埃之中去了。<br>&nbsp;&nbsp;&nbsp;&nbsp; 张之洞建立了大武汉这个理念，到了上世纪八十年代之初，还发挥着作用，在经济地位上，湖北一直是中部的经济中心。据上世纪1982年代统计的全国各大城市的工业总产值、工业净产值、工业固定资产原值与实现的利税额排名，武汉均居于第四位，仅次于沪、京、津。而现在湖北的经济状况，是个什么样子呢？我们湖北人一向自我感觉良好，看不起北边邻省人，把人家称之为&#8220;呔呵&#8221;，把东边的邻省看成是饥民——现在经济情况已经比较邻省来差距了不少，只能和几个僻远省份比肩。如此坐以待毙下去，不出几年，差距将会拉得更大。<br>&nbsp;&nbsp;&nbsp;&nbsp; 湖北省是不是在上个世纪改革开放以来，便完全没有什么求变的举措呢？答案显然是否定的。我马上想到，武汉柴油机厂曾请德国人来担任过洋厂长，这一举动着实吸引了媒体的注意，曾做过系列报道。改革开放之初，涌现出了一大批改革家，使湖北的经济呈现出生气勃勃的局面。不几年，那些卓有成效的改革家们不是因为自身的问题导致逃亡海外，就是因贪赃枉法而进了监狱；有个好的归属呢，就是把自己辛苦打出来的江山，禅让给了主管单位下派的干部。他尽管上调高升了，得了个有名无实的虚衔，眼睁睁地在一旁看着自己的企业，被毫无经验的人折腾得气息奄奄而黯然神伤。<br>&nbsp;&nbsp;&nbsp;&nbsp; 为什么这些可以计数的辉煌都衰败了呢，我想这大概得归功于湖北人的做事没有长性，我在对湖北人的性格特点进行总结时，首先便想到了这点，急功近利，目光短浅，或可总结为&#8220;鼠性&#8221;。</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face=宋体>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="FONT-SIZE: 16px; FONT-FAMILY: 黑体">2、湖北人的其他几个特性</font><br>&nbsp;&nbsp;&nbsp;&nbsp; 我想先做做说文解字的考证工作，谈一下&#8220;水货&#8221;。<br>&nbsp;&nbsp;&nbsp; &#8220;水货&#8221;这个当代名词，无疑是湖北人的发明。这个词的确也是湖北的产品代名词。湖北的产品搞到这个地步，实在让人难以想像。湖北在上世纪八十年代之初，因为水陆交通的便利，是为小商品聚散地，有条汉正街便蜚声海内外，我曾随湖北作家刘益善先生去采访过这条街上的典型人物，对他们的商业运作稍有了解，这里的商人，思维活跃，敬业精神颇强。后来，这条街不知怎么慢慢地演变为一条水货街，更慢慢地像病毒一样向外扩散，湖北人变成了&#8220;水货&#8221;的代名词。<br>&nbsp;&nbsp;&nbsp; 湖北人说起温州人来，可以把嘴巴撇过河去，几百个瞧不起，一个没有文化的地方，靠菜刀（饮食业）剪刀（缝纫业）劈刀（皮革业）剃刀（理发业）螺丝刀（修理业）的五把刀子起家，在小商品兴起之初，也出现了许多问题，但这些负面的形象被他们一点点克服了。如今温州小商品市场，没有一个地区可以相较，甚至可以说许多小商品在国内市场基本上都带有垄断性质。汉正街和温州是两处不同的小商品聚集地，其结果则大不相同。<br>&nbsp;&nbsp;&nbsp; 国人痛恨水货，湖北人制造销售已经背上&#8220;水货&#8221;的骂名，是不是湖北人素质有问题？绝对不是。远的不说，就拿晚清名臣张之洞所创的&#8220;湖北新政&#8221;产生的&#8220;驾乎津门、直追沪上&#8221;丰硕成果来说，就足以告慰湖北的先人了。那个&#8220;汉阳造&#8221;到现在还有人提起，湖北铜锣的响声名牌到如今尚留有余韵。但品牌首先都是靠耐心创造的。<br>&nbsp;&nbsp;&nbsp; 说到这个耐心，湖北人最没有。为什么这么武断呢？湖北人&#8220;水性扬花&#8221;哩。湖北乃称千湖之省，我查看过明代我的家乡县志，其地名称为&#8220;湖&#8221;的，竟然有一百四十处之多。湖北如地多水，便养成了湖北人的&#8220;水性&#8221;：水亦随波逐流，水之浪漫灵动，水之静谧闲适，水之知进识退&#8230;&#8230;有了&#8220;水性&#8221;的人便少了硬度，便少了坚持不懈的力度，反正水往低处流，世界上总是有低处的，湖北人想到比上不足比下有余，这就是湖北人的第二个特点——&#8220;水性&#8221;的真正特质。</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face=宋体>湖北人动起来像水，不动的时候便像油。湖北人比&#8220;水性&#8221;更为严重的便是第三点：&#8220;油性&#8221;。<br>&nbsp;&nbsp;&nbsp; 看看我们现在的湖北人吧。如果出了一点小状况，保证几个当事者，都会推得干干净净，不知责任人是谁。如果出了一些秕漏，领导要过问，保证积极向领导检举其他当事人，认为自己不仅没有问题，还是被陷害的；如果出了大问题，造成了一些不良影响，你看一次在这个相关的团队中，被吵翻了天，谁会有负责任之说，那只有傻瓜才会被顶上去。所以，我们湖北人开会，一般两种会比较多，贯彻上级指示精神，开得疲疲乏乏，一种是推委责任的扯皮拉筋，最后把领导吵晕了，此事便不了了之。难有解决问题，直面困难的勇气和智慧。<br>&nbsp;&nbsp;&nbsp; 在我们当代，湖北人已经高调来传承楚文化了，可惜是有其名而无其实。湖北人不仅是&#8220;水货&#8221;的象征物，而且成了奸诈狡猾的代名词。外省人告之，如果要和湖北人做生意，千万要睁大双眼，怎么这样说呢？因为湖北人骗术高明，可以做到你防不胜防的地步。他会先会给你看一个质量上乘的样品，一旦一手交钱交货时便会戏法般地给你一堆残缺不全的水货产品，你反追过去，连人影子都见不着了，好像被太阳蒸发了那般。这也自然而然的，水货大省，水货应是防不胜防，外省人与湖北人做生意，一定要把上当受骗计入成本。许多举国哗然的诈骗案，比如黑心棉、假酒案以及用红头文件来招摇撞骗等，做得别出心裁，基本上都能体现湖北人的智慧。湖北人确实传承了祖宗的敢为天下先的精神，可惜用错了地方。<br>&nbsp;&nbsp;&nbsp; 一群走出湖北在外地工作的人，见了这样标新立异的骗术，不得不唉声叹气地承认，把智慧超常发挥的&#8220;歪脑筋&#8221;，只有家乡人想得出做得出。害得这些家乡的游子，向外人介绍自己时也要遮掩自己的籍贯，怕别人对湖北人的歧视与提防沾染了自己。<br>&nbsp;&nbsp;&nbsp;&nbsp; 某县改市几周年，把一些外地出头露面的人请回去，一时间这些人大有衣锦还乡之感，待住进宾馆，进入会场，安排到了贵宾席上时，快刀子便悄悄伸了过来，让他们龙飞凤舞地签上大名。这些人拿上签名簿就要写，哪知这里成了杨白劳与黄世仁签字画押的关系，真是暗藏杀机，无法应对。提着颤抖的笔，千万别签错了地方，签名分成几个档次，签名后面拖着五千、五万、十万的捐赠数目。这些衣锦还乡的游子丝丝地冒了一身冷汗，要捐钱也应该说到明处吧，可如果说到明处，就不是湖北人的招数了。<br>&nbsp;&nbsp;&nbsp; 为什么湖北的经济搞不上去，不讲诚信，一锤子买卖，又是我们伟大楚国后裔的一大特点。一位在国家总局工作的朋友向我讲述这样一件事情。沿海的一个富裕省份突遭灾害，急从湖北调运一批救灾物质，抵达后，货物一称，每袋都少了份量。湖北人为什么会这么干，因为湖北人会算计呀，你想，沿海省受灾，手忙脚乱的，各种救灾物质源源运来，他们怎么会去称一称呢？但人家外省人可不是这样想的，是要记住湖北人的恩情，适当时要偿还的，可是重量一出，湖北人形象便大跌了，沿海省的人发誓再也不会从湖北运进物资了。至于我们自己互相做生意，短斤少两更是心照不宣，成了一种既定的潜规则。</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face=宋体>&nbsp;&nbsp;&nbsp; 人家说温州人到哪里都会抱成一团，湖北人呢，做的第一个动作就是互相拆台。你看，湖北人是这样盘算的，都从家乡出来，他比我混得好，他能衣锦还乡，我却只能糊口度日，这是大大没有面子的事情，要富一块富，你想先富那连门儿都没有。拆台的典型案例，据说是有人在北京开了个九头鸟酒店，规模和影响做出了，湖北人自己便去学了两招，如此便开一个九头鸭九头龙之类的酒店，分流其客源。相比于团结的外省商人，湖北人是不讲究团队精神的，每个人端起来都上的了台盘，但看看却是一盘散沙，而且互相欺压，就像乌龟一样——龟是杂食类非群居动物，它吃任何比它体积小的生物，包括小龟。没有团队精神且善于内讧，这便是湖北人的第四个特点：&#8220;龟性&#8221;。<br>&nbsp;&nbsp;&nbsp; 湖北人也有扩张的精神，从前楚文王之弟，在楚文王之后出任宰相，几年没有出兵，居然被国人瞧不起，只好兵伐郑国，尽管没有开仗就返回，至少要装装样子的。当代我们湖北人，也能扩张，但不是向外，你看外省外国有多少值得称道的大企业是湖北人做的？都是些名实相符的小家当，但牛皮吹得有天大。湖北人一向内杀内行，人都有恋乡的情绪。一位老总给我讲了一个故事，说他进京发现了本省的一个办事处，一下牵动了思乡情绪，或者说湖北口味被刺激了，便去办事处的酒店里吃了个早点，一个炸鸡蛋、一碗豆浆、一根油条、一点咸菜和两个小馒头，收费五十元人民币。这位老总很不服，指着要餐厅经理算算，怎么可以达到五十块。哪知经理把脖子一梗，告知我卖的是湖北口味，要吃不吃就是这个价。我信了你的邪哟，如此卖法生意会好起来。经理又说了，怕什么，找四只脚的蛤蟆难找，找两条腿的湖北人多的是，一人宰上一回，就发了大财了。湖北人的伟大逻辑。<br>楚人老祖宗那个时候只有方圆五十里地，亲自穿上破烂衣服，坐在牛车上，带领众人艰苦奋斗，没有团结的精神，怎么可能打出南方一个超级大国来。但当代的湖北人，是绝对不会合作的。如果我暂居人下，我把智慧藏起来也不会贡献给你，他不会想顶头上司有了更大的平台，他的平台就便空出来了。我开过很多很多会，发现湖北人的能侃是第一流的，表态可以做到水点灯的地步，但仔细一看，即使十人的小团体，就有九颗各怀其事的心。有两颗如果是同心，便是领导和他&#8220;情况&#8221;的。这就应证了&#8220;天上九头鸟，地下湖北佬&#8221;这句明代咒骂张居正的老话。湖北人怎么解读这句话呢？宁做鸡头，不做凤尾。人人都想当干部，哪有这些平台呢？没有平台，就互相拆台吧，互相拆得都搞不成，这就是湖北人不合作的精神特质。所以外省人说，不到万不得已，就不要选择湖北人做合作伙伴。这句话未必就是没有半点根据。<br>&nbsp;&nbsp;&nbsp; 沿海有个城市的一些单位搞招聘，公开拒绝湖北人。消息传回湖北，省内各界大为震怒。可是，湖北人启动一下我们的反省机制，难道我们被搞得如此狼狈，自己就没有问题吗？你看我们湖北人，到外省去打工，刚进别人的公司。熟悉了一下环境，便会聪明的露两手，给单位领导和员工看看。如果再要湖北人发挥下去，就困难了。为什么呢？因为湖北人露的两手，是让你领导看看的，他多么地怀有大才，你要用么？就必须待价而沽了。这还是好的，有些湖北人，到了别人公司，没有一处不计算，没有一点不计较，小算盘打得精，生怕吃了一点亏。如果感到吃了亏，湖北人感到势单力薄，便去发动群众，来与领导做对，以达到自己收获蝇头微利的目的，一个公司便因为湖北人而坏了风气。更有甚者，湖北人特别看不上顶头上司，认为他的位置本来就是自己的，他只不过有点耐力，死命撑着得来的。看准了这一点，湖北人便上窜下跳，变换各种方式把顶头上司挤垮，一时间弄得公司人鸡飞狗跳，乌烟瘴气。可惜湖北人又没有耐性，闹了一阵，见没有动静，便大感无趣，自行撤退了。湖北有句老话，这就叫一颗老鼠屎，搞坏一锅粥。如此外省人敢用你聪明的湖北人吗？<br>&nbsp;&nbsp;&nbsp; 湖北人灵光、活泛，做事马马虎虎，在没有利益冲突下，你好我好大家都好，在这样氛围中，还产生了极好的自我感觉。如一件买卖摆在他面前，便盘算开了，视好处多寡而卖力气。当然，这的确可以节约体力和智力，可是，湖北人恰恰忘了，许多事情论一时一事，永远也别想把盘子做大，盘子做不大，锅里的肉就少，肉少了你又能分多少呢？换句话总结湖北人的聪明才智，其实是叫聪明反被聪明误了。本人有在外省打工的经历，较之外省人发觉湖北人的确能说善辩，我也颇具备这方面才能。带着一个团队，必须要完成公司下达的指标，显然靠自己难以做到，要充分调动员工的积极性，于是动员大家，外省人很快发动起来，一时间大伙干劲很足。只有一个湖北人依然按部就班干着，我感到他的状况有问题，与之单独沟通。他见我如此对他作工作，用一双笑眯眯的眼睛看着我，意思很快被我这个湖北人解读而出，他告诉我说，忽悠下外省人嘛，我也不拆穿你的西洋镜，你那套就别在我面去玩啦。我噎了一下，说不出话来，知道这是一根如我一样的湖北人，让我实在难啃的骨头。<br>&nbsp;&nbsp;&nbsp; 而在&#8220;油性&#8221;和&#8220;龟性&#8221;中潜伏着的，是湖北人深深的&#8220;痞性&#8221;，这种以痞子的行为逻辑为基本方法的流氓精神，是湖北人自以为赖以生存的手段，痞子总是奸猾、寡信、善妒、无赖、夸夸其谈说大话。<br>&nbsp;&nbsp;&nbsp; ——说大话是湖北人的又一大特色。有个朋友告诉我，如果你到什么养老院，在群老爹爹们晒太阳的地方坐一会儿，便会被他们的气势吓得个半死。因为他们在结合国际局势，做中东的石油出口，进美国的废旧钢材。湖北人走出去，属于那种&#8220;拿得出手&#8221;的类型，外观一看，十分挺括，头打理得油光水滑，苍蝇歇上也会跌倒，额头蓄得生光，眼睛十分明亮，脚下皮革擦得贼亮。一身穿着西装笔挺，领带花哨时尚，迈步时胸挺首昂，目视高远。牛皮吹得很大，嘴上工夫很足，做起事来呢，则又是另外一回事情了，至今我们难以看到湖北人在和平时代的经济作为，湖北的经济不日渐萎缩才怪哩。<br>&nbsp;&nbsp;&nbsp; 你看，我们这么一说，湖北人便振振有词了。比上不足，比下有余嘛，湖北人因为生在中部，马上可以嘿嘿一笑，自我解脱得蛮快的，中不溜就行了嘛。所以，中不溜是一种地道的湖北精神。<br>&nbsp;&nbsp;&nbsp; 有人总结湖北人做了老板有三种表现形式。一种是大老板，他赚了三千万，你走近他一瞧，他的霸气豪气势气阵势吓人半死，浑身上下抖的都是钞票，口一张开呢，果不同凡响，听说联合国大厦正在招标，打算去玩玩。他的大老板派头一摆谱，白道红道工商税务全部一起上了，不多久，此大老板便销声匿迹了。另外一种大老板，钻了国家的政策空子，或者原始积累来得不太干净，赚了三千万，他老人家赶快皈依佛门。有位大老板，赚了如此多的钱，每夜做恶梦，只好去庙里带发修行，五年时间，为他的师傅开着奔驰到处做法事。而江浙老板，有了这笔资本，目光随即高远，很快就会瞄准国际市场，知道天外有天，人外有人，变得更加低调和谦虚。绝不会要么一副暴发户的模样，要么变得不思进取。还有一种老板，多是小老板，守个摊子，卖个小东小西，日日有点进帐，便大大地满足了，一边念叨&#8220;社会主义好&#8221;，三人必成斗地主局，四人必备一副麻将桌。武汉有如此多的商品聚散地，外省小老板和本省小老板的区别，不难辩认就是看进牌局的次数。我常去的菜场，摊前摊后就有几桌麻将，摸得油黑发亮地置在一旁，只要有空便会摸几把。小富即安，把大好的光阴就这样白白浪费了。<br>&nbsp;&nbsp;&nbsp; 所以，除了&#8220;痞&#8221;，湖北人还有个特点就是&#8220;惰&#8221;。<br>&nbsp;&nbsp;&nbsp; 如水似油，仿龟像鼠，既痞且惰，几大特点互为表里，互相掺杂，分别以不同的方式结合起来，便是湖北人的劣根性的解剖图了。我不敢说百分百正确，但如果你遇到一个湖北人，对比着这几点，你总能发现点什么。<br>&nbsp;&nbsp;&nbsp; 我有时去外省，碰到老乡，不免有几分喜悦。几句话谈来，便显得不舒服了，不是老乡妨碍了我，而是我发现因为老乡的缘故，参照出了我身上的毛病，那些无法克服，带着鲜明湖北人烙印的毛病。<br>&nbsp;&nbsp;&nbsp; 我在想，我们好不容易赶上一个这样的时机大好的时代，却因为我们身上这些小毛病，而无法发展，使我们渐渐落后下去。我痛觉到湖北有一种慢慢被遗弃之感。新的世纪之初，我们湖北人不在文化上作些反思，再不清醒地认识自己的不足，本来一个富裕的省份，如此下去，定会成为我们国家的包袱。</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face=宋体>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="FONT-SIZE: 16px; FONT-FAMILY: 黑体">3、湖北人本不是这样</font></font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face=宋体>&nbsp;&nbsp;&nbsp; 我之所以想要写这篇文章，并非突发的狂热之举，在本世纪之初，因写部以巫术为背景的小说《四十岁的一对指甲》（一直没有出版社愿意出版），要了解一下楚文化。可本人一旦走进灿烂辉煌的楚文化，再也难以自拔了，刚刚完成《楚国往事》后，实在是有点按捺不住自己的冲动，来写这篇文章。我们的祖先，从周朝分封的一个小小的子爵国，五十里不足的丹阳小城，筚路篮褛，开启山林。这是形容楚国人的一个成语，意思是穿着破衣，坐上柴车。去开辟山林，形容创业的艰苦。楚人就这样往前慢慢扩张，经过几个世纪的拼搏，国土达到当今十一个省的大小，是那个时代世界上最大的王朝。我之所以要谈到楚国历史，是希望告诉大家，楚人不仅敢为天下先，你周王朝给我一个子爵而不肯晋升，我自己称王好了。楚国称王，比较秦人来，早出四百余年。<br>&nbsp;&nbsp;&nbsp; 到了近代，湖北人敢为天下先还是出了名的，随便列举几例，就可以说明湖北人的精神。孙中山先生推翻满清搞革命，到处发动起义，都没有成功。湖北在响应起义筹备起义时，已经走漏了风声。湖北人一见起义将会胎死历史的腹中，大吼一声，老子打响第一枪再说。就是这么歪打正着的一枪，把个三百多年根深蒂固的满清王朝轰然掀翻倒地。<br>&nbsp;&nbsp;&nbsp;&nbsp; 什么叫挽狂澜于既倒？湖北人张居正就是这种角色。明代到了万历年间，朝政已经腐朽不堪了。张居正因时而出，成了一代厉行改革而彪炳史册的一位传奇人物。他荣登首辅后，理政十年之间，整饬吏治，革新税赋，梳理财政。拯朱明王朝将倾之大厦，使万历岁月成为明朝最富庶的时代。<br>&nbsp;&nbsp;&nbsp;&nbsp; 楚人还有种敢负责任的精神。屈原的始祖，楚武王的儿子屈暇，因发兵战败，自杀身亡，开启了楚国人勇负责任的先例，楚文王与巴人开战，战败而归郢都，被守城的小吏教训了一通，羞愧难当，不得已只好带着这支残兵败将，冒着生命危险兵伐黄国。楚成王与晋文公的城濮之战，战败而归，主战者宰相的子玉没有选择地自杀谢罪。陈胜的大将、楚人周文，带着义军，打到咸阳一带，后被战败，同样自杀身亡。历史几乎都在叹喟后来的楚霸王不肯过江东，其实是大家都忽视了楚人战败的传统。<br>&nbsp;&nbsp;&nbsp; 现在很少有什么事情需要人去自杀谢罪，但我想&#8220;负责任&#8221;总归是楚人一个值得骄傲的传统，现在我们湖北人，最重要的是每个人都肯为湖北的事情负责，都肯为自己负责，都肯为自己身上的那些毛病负责。<br>&nbsp;&nbsp;&nbsp; 如果我们每个湖北人都这样负起责任来，我们中间便仍能出现张居正这样的伟人，便仍能为天下先。<br>&nbsp;&nbsp;&nbsp; 而只有危言，才能醒人。</font></p>
<img src ="http://www.cppblog.com/wlwlxj/aggbug/45428.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wlwlxj/" target="_blank">万连文</a> 2008-03-26 14:46 <a href="http://www.cppblog.com/wlwlxj/archive/2008/03/26/45428.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转  襄樊牛文</title><link>http://www.cppblog.com/wlwlxj/archive/2008/03/12/44247.html</link><dc:creator>万连文</dc:creator><author>万连文</author><pubDate>Wed, 12 Mar 2008 03:46:00 GMT</pubDate><guid>http://www.cppblog.com/wlwlxj/archive/2008/03/12/44247.html</guid><wfw:comment>http://www.cppblog.com/wlwlxj/comments/44247.html</wfw:comment><comments>http://www.cppblog.com/wlwlxj/archive/2008/03/12/44247.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wlwlxj/comments/commentRss/44247.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wlwlxj/services/trackbacks/44247.html</trackback:ping><description><![CDATA[襄樊闲话---一个就着面条都能下酒的平民城市<br>　　<br>　　襄樊人本身就是半吊子,都喜欢捞爽的说,稠的说,荤的说,还喜欢吊着说,都喜欢别人给自己起吊不砍砍的外号.<br>　　<br>　　襄樊虽居于荆楚,但接壤于陕豫.象宜昌/荆门/黄石口音都与武汉相近.人们习惯于把武汉口音称为楚腔/汉调.<br>　　<br>　　而襄樊人却不这么认为,而且都称楚调为&#8220;蛮子&#8220;.自襄阳建城两千八百余年以来.襄阳城的管理权实际上是河南人与湖北人互相碰撞的一个焦点.但大多数情况至今,襄阳地区的管理权还属于湖北省.<br>　　<br>　　襄樊人对武汉有种亲切感,而武汉人则对襄樊有种很难说出口，而又很神秘的感觉.<br>　　<br>　　襄樊人出了湖北省,没有人把他当湖北人看,襄樊人在湖北省,&#8220;蛮子&#8220;们也另眼看待襄樊人.而襄樊人又不认为自己是河南人,认为谁说我是河南人就是在决老子.<br>　　<br>　　襄樊人并不是很明显的排挤外地人，总之外地人只要不是衣裳补丁摞补丁，襄樊人对外地人总是很客气，总认为外地人有钱。所以襄樊人在很多场合都显的比其它城市里的人够朋友，讲意义，是那回事儿。但你要耍小聪明玩襄樊人，对不起，爷们儿转着圈子整的你娃子在这里呆不下克。<br>　　<br>　　襄樊人苦啊,但襄樊人又臭拽臭拽的,襄樊人眼里容不下宜昌人,认为宜昌没有家底子,襄樊人又看不起神衣架人,认为他们是山里头的,襄樊人也看不起黄石孝感的,在襄樊人眼里看来,那不过是武汉的郊区----还是乡下的.<br>　　<br>　　于是襄樊的男人们总爱说自己是湖北的老二.襄樊的女人们总爱顶嘴:&#8220;你娃子卵子掏出来看看撒,你不是天天乐肥说你老二大吗?&#8220;<br>　　<br>　　当襄樊人听到武汉人说&#8220;克辣里克撒?&#8220;,&#8220;坐个麻木撒&#8220;,襄樊人觉得很亲切,觉得襄樊话和武汉话用词发音就是一家子.但当武汉人在襄樊人面前说&#8220;个婊子养的&#8220;,&#8220;个把妈的&#8220;时候,襄樊人又觉得有些陌生,而又不敢言语,心里觉得不是滋味儿,认为武汉不过是个放大了的乡村,在某些方面还没得襄樊爷们儿讲文明.所以襄樊人在本地讲话,见到玩得好的娃子,首先决球一句&#8220;我日**到好的&#8220;然后该吃饭吃饭,该喝酒喝酒,该嫖娼嫖娼.<br>　　<br>　　说到嫖娼,这是襄樊男人最大的乐趣所在.不论你是上班的,还是拉板车的,不论你是大学毕业的,还是只会打勾圈凯尖的,都知道余家湖,都知道义乌,都知道城墙根,也都知道团山,虽然大多数人没有去体验过野花，但图个嘴快活.在这里,公安方面的同志请不要介意,今天在这里就是扯蛋聊天的,你们的工作是值得肯定的.<br>　　<br>　　本来嘛,找小姐尻俩娃儿这事儿在任何地方也算是个本土特色.不论是否真去找小姐,老实的内向的男人都能举例说出一大堆,也有不远几百里从武汉过来找小姐的外地朋友.出名啊,襄樊人只知道你下了火车,出了武昌或汉口站,就有很多人拉客&#8220;老乡,来撒,我们那里有小姐&#8220;,&#8220;兄娃儿,我们小姐温柔的很&#8220;... ...搞的襄樊的娃子使劲一咽唾沫,看了看武汉那炎热没有一丝生气的灰色天空,踩着脚底的湿袜子,混入城市的人流.襄樊人进了大武汉就感觉自己是一骆驼祥子.<br>　　<br>　　所以襄樊人在找小姐的时候,也是相当直爽的,认为不必要脱裤子放屁多此一举.爷们就是上帝,就是当爷的来玩孙妞儿的.襄樊人瞧不起广州深圳的包二奶现象.认为老板一级的人物tm好东西吃多球老,把那玩一吃坏了.所以找个女人漫漫磨洋工.<br>　　<br>　　所以,襄樊的俩娃儿们只要被男人一上,就老实多了.不过相对来说,没得多少能狠下心脱了裤子睡自己爱恋的女神的直爽男人.所以,襄樊有个小博雅小轩非常缘份的版区里,成天有人要死要活对爱情反省的对处女膜研究的.<br>　　<br>　　当公安干警真正封了余家湖，开心的大多是襄樊的女人们。除了当领导的之外，襄樊男人们对此很少有发表个人意见的。这也是意料之中－－因为原来我在网上找到过一篇牛文&#8220;全国人大代表建议卖淫合法化&#8220;,并且列举云云理由一二三四五,上山打老虎.不论这篇文章来源是真是假,总之,这类话是只有男人才想得到的.所以女人爱给儿歌后面加上一句:老虎不吃饭,专吃大坏蛋.<br>　　<br>　　你娃子得了爱滋病我看你娃子还建议克~~~~<br>　　<br>　　襄樊不是大城市,也TM好,物价比大城市低,消费环境能上能下能左能右还将就,而且给你一百多块低保,你也能人模人样的到麻将馆里吹喊儿牛逼,扯喊儿淡屁,抽喊儿老白条.襄樊的领导层和商业层是有雄心壮志步入大城市行列的.襄樊人于是就盼着湖北省解体,武汉搞成直辖市,襄樊变成新省会.更有襄樊牛人,在网上取了个不易查觉的网名,大大的指责中华人民共和国现任首都北京的不是,一弄搞的全城黄沙雾,二弄天天要喝汉江水,三弄说北京的人文风气不好,一开口就是&#8220;你丫的&#8220;这&#8220;你丫的&#8220;那.还不如直接迁都到湖北江汉平原大三角之一的襄樊地区。我靠,胡88没敢8的事,恩是有人敢替他老人家作主.<br>　　<br>　　我估计&#8220;迁都&#8220;一文,襄樊市政府的某些领导干部可能在茶余饭后见过.也肯定巴不得这事能搞成.哼哼,不到广州不知道钱多,不到上海不知道房贵,这回不到襄樊不知道官大... ...<br>　　<br>　　于是乎全体襄樊网民无限YY....党员干部与老百姓真正走到鸟一起.现在别看对武汉B恭B敬的,都等着分家哪~~归根到底,襄樊人哪儿也不承认,凑是牛逼~~~~宜昌想抢新省会?赫赫,给襄樊人打个报告先.襄樊人可以在全国人民面前大大咧咧不以为然的吹：&#8220;新、马、泰一日游只有在襄樊才能实现&#8221;，外地朋友来老，咱欢迎，但是你不逛新马泰就不叫来过襄樊，这话真不是盖的，不说宜昌等湖北其它兄弟城市，就是大武汉听到这个口气也准得傻眼儿。<br>　　<br>　　一想到这儿,襄樊的爷们儿又咧着被烟熏黄的大牙笑咧.<br>　　<br>　　宜昌这个地方给我的印象是城青山秀人灵,说宜昌是大家闺秀,是湖北最拿得出手的娘们儿,一点也不为过,全国上下都知道三峡在宜昌,而没襄樊人什么事儿.襄樊人说诸葛亮的草芦在襄阳古隆中,于是就有不识相的河南头也把这仅有的一片内裤也扯了去.襄樊人气的只骂娘.听说南阳隆中比襄阳隆中有玩头有看头,前几年襄樊的领导也搭伙集体克&#8220;考查&#8220;过.后来过克一看, 不是那回事儿,河南在八十年代之前还承认隆中在古襄阳以西,九十年代要以抓钱为建设中心了,就找了几个历史砖家,几块没烧好的土砖一拍&#8220;俺们河南才是正宗的&#8220;,于是一个历史名人的落草之居,也被两个原本很有风度的古城争来抢去,其恨超甚于夺妻拐女.所以现在襄樊的领导干部们就无视原来&#8220;学习&#8221;过的南阳了，领导们眼光现在放到国际上了，这不，市委领导不出国去了么，谁看你南阳鸡飞狗跳的在哪儿歇乎叫唤。<br>　　<br>　　河南人喜欢争风,襄樊人却不爱吃醋,认为跟河南人争这个有失于自己的形象.只是给河南人亮亮老二就行了,隆中本来就是襄樊的,河南人吃饱了撑球地~~~~~~ &#8220;妈里个逼的死河南头&#8220;，虽然河南人听着襄樊话有点耳熟，想拉襄樊人入伙，襄樊人却懒得吊河南人。襄樊话与河南话最大的不同就是，襄樊人说自己是&#8220;老子！！&#8221;牛气冲天，河南人说自己是&#8220;俺～～&#8221;土里土气，人在对待自己的称呼上，襄樊人和河南人的自信就不是一个档次的。而北京人说&#8220;爷&#8221;代表自己的时候，襄樊人则气壮山河的把自己称乎为&#8220;爷们&#8221;，虽然你北京人口多，但跟美国是一样的都是外来户七拼八凑的。但相反的现在谁要把户口从上海广州迁到襄樊，那准是脑子被门挤了。<br>　　<br>　　河南人当然也有优点，不说襄樊人太多的拐话，你可以在襄樊的街头经常听到襄樊人说&#8220;河南头&#8221;，仿佛河南人很那个～，但你在南阳街头却很少听到河南人说襄樊人的坏话。当然也有，不过水平跟襄樊人不是一个档次的。襄樊人由于地理位置的特殊性，&#215;怂拿姘朔降木韵宸顺圃抟桓鋈四芮颍退邓熬南蟾龆挂谎保熬南蟾鐾米右谎保凑獾厝艘膊恢勒馐潜硌锘故桥溃灿锌赡苁羌刀省Ｏ宸似涫敌睦镉惺党隼淳褪侨枚苑讲碌模宸说奈蛐越细摺Ｋ怨糯秸崃讼逖簦湍芷蕉ㄖ性５蝗怂邓剂四涎簦湍艹瓢蕴煜隆Ｖ罡鹆梁蔚热宋铮空渭摇⒕录摇⒛甭约摇⑵蠹摇⑷撕炱焓趾美瞎谝簧恚盖瓴沤烧饷匆桓雠１迫宋铮嵫&#8801;诤幽夏歉龅胤教焯斐悦嫣酰ス坏揭豢琶琢６纳睿吭趺醋乓驳醚&#8747;桓觥吧讲桓撸⌒悖簧睿惭拧钡暮玫胤桨桑克裕涎舻幕肪趁环ǜ宸龋宸庸胖两瘢傲致袒ㄉ枰恢笔鞘艿交识骱瞥璧摹Ａ跣愕睦霞也灰苍谙宸脑嫜艟衬诼铮?br&gt;　　<br>　　假设，诸葛先生当初————好！给河南人一个面子，就算是他住在南阳吧，河南从古至今都是只产小麦而少见水稻的，他当时也算是一个落草之人，说好听点叫隐士。是男人就都想有翻身东山再起的逆变思想，他不甘心于在&#8220;隆中&#8221;这个地方虚度一生。他天天肯定是吃面食为主，&#8220;面&#8221;这东西，吃多了要上火，如果第一次去茅芦请诸葛亮出山，亮肯定把刘关张当成在陕北会师的中国工农红军：&#8220;俺是日也盼，夜也盼哪，总算把亲人给盼来咧&#8221;... ...说出去多丢人？<br>　　<br>　　<br>　　<br>　　<br>　　<br>　　<br><br>
<center>
<script language=javascript src="/new/TianyaCity/CityADManage/ShowADContent.asp?idwriter=0&amp;key=0&amp;item=458&amp;intPosition=7&amp;strKey=1"></script>
</center><!--开始首帖底部通栏--><!--结束首帖底部通栏-->
<form id=AllDelResponse name=AllDelResponse method=post>
    <input type=hidden value=29728 name=strMaxID> <input type=hidden value="[转贴] 关于襄樊的一篇牛文！！(转载)" name=rs_strTitle_aa> <input type=hidden value=0 name=intLogo> <input type=hidden value=1 name=rs_permission> <input type=hidden value=1 name=page_num> <input type=hidden name=jump_array> <!-- <input type="hidden" name="page_num" value="1">
    <input type="hidden" name="jump_array" value=""> --><br>
    <table cellSpacing=0 width="100%" align=center border=0>
        <tbody>
            <tr>
                <td align=right width=100></td>
                <td align=middle><font color=#6699cc size=-1>作者：<a href="http://1home.hainan.net/browse/listwriter.asp?vwriter=噩梦之瞳&amp;idwriter=0&amp;key=0" target=_blank>噩梦之瞳</a>&nbsp;&nbsp;回复日期：2006-8-10 06:09:00</font></td>
                <td align=right width=150></td>
            </tr>
        </tbody>
    </table>
    <div class=content style="WORD-WRAP: break-word">　　但是历史是&#8220;三顾茅芦&#8221;！<br>　　<br>　　诸葛亮在襄阳隆中翻身做了主人，&#8220;啥？门外来了三个憨子？不理他们，爷们要睡瞌睡&#8221;，这才拿出当爷的架子玩刘备。但刘备绝非诸葛亮所想之平庸之备，刘备作为一个男人来说，基本具备了女人：&#8220;一哭、二闹、三上吊&#8221;的特性。在三国演义中，刘皇叔搞球的跟刘姥姥一样，哭了不少回。所以这请诸葛出山，虽说没哭（哭没哭咱也确实不晓得）但会痞，一回不行二回，二回不行三回。而且痞也要痞的看上去是那回事儿，为什么不晴天来请，偏偏找个大雪封山的日子来隆中？搞得张飞兄弟冻的快受不鸟：&#8220;哥哥待我去把那厮的房子点了&#8221;，其实张飞并不是对诸葛亮有气，而是出于人的本能想烤火取暖。当小弟的总是为大哥着想，这样才能混的有出头之日。张飞说点房子烤火，虽有些粗旷，但是想让刘备长期在这里耗着。所以刘备对张飞在三国演义以后的故事中，对他比对关羽还好。关二哥可能当时不觉得冷，胡子长当围巾使了，但是你最起码考虑一下备哥吧？只顾自个爽。所以关二哥死在了张飞的前面，诸葛亮也一直看关二不爽。这是题外话，咱打住。<br>　　<br>　　诸葛亮只有住在湖北境内，才可能天天吃大米，所以几千年后人们传唱的&#8220;老鼠爱大米&#8221;也实际上从侧面证明了襄阳古隆中在历史上的意义。大米乃水中之物，性平。所以诸葛亮耐着性子只顾自己摆谱。他要是心里不痒，他根本不会出山，他也根本不会在家里收摆些军事地图，然后对着地图张牙舞爪大做国际时局评论，当代李敖也没他牛逼，只叫刘备看得听得两眼放绿光。如果诸葛亮是女的，估计刘备会留着自己的处男之身等她一辈子。<br>　　<br>　　刘皇叔果然没有看走眼，诸葛先生也绝非走场之辈。在以后的三国演义中，刘皇叔放心的把军权全部交与先生，自己适当的时候挤两珠猫尿以示对众将之爱心。诸葛亮有了这么个独俱慧眼的投资商，备哥起码也是高干子弟，才得以在历史的舞台上写下浓厚篇章。于是水淹七军、火烧博望... ...等著名战役令后来的军事家狂晕，就连在金庸的武侠小说&#8220;鹿鼎记&#8221;中那个刁蛮任性的公主也灰常稀饭与韦小宝玩&#8216;诸葛亮火烧藤甲兵&#8217;的 SM 游戏，后来诸葛亮发明了孔明菜和馒首，前者是行军方便老少咸益，后者是打一仗死那么多人良心上过不克，这两大发明前前后后与河南人屁事没得。<br>　　<br>　　为了证明诸葛先生的伟大，襄阳后人把&#8220;孔明菜&#8221;改为&#8220;大头菜&#8221;，你头不大，面子就不大，就没人卖你的帐。至于&#8220;馒首&#8221;原本是当做人头做祭嗣之用，后人改为&#8220;馒头&#8221;，这个东西纯粹是无心插柳柳成阴，馒头在襄阳这块地上首先象活化石一样保持了几千年来最原始的形态，不象外地人变着花样虐待馒头，鲁迅先生也写过&#8216;人血馒头&#8217;，歌导也以馒头为线索拍了&#8216;无极&#8217;，胡兄在网上更是把馒头文化发挥的淋漓尽至。而在我们这座历史名城中，几乎没人不晓得&#8220;毛皮厂馒头&#8221;的。不过大家还是看到，馒头在歌导的&#8216;无极&#8217;里也不是正崇，顶上点了四个红点，一捏就软的看不见了。在襄樊这东西是馒头的老表，叫发糕。正儿八经的馒头是黄酒发面做出来的，经捏，皮儿薄，一撕开，馒头瓤子一层一层的，没有太多大的气孔，透着麦香。再夹点儿香油拌的大头菜，比汉堡强千百倍。河南人不叫馒头，叫馍，顶多就是蘸点酱豆丝，嚼棵大葱，算是过了隐，襄樊人吃馍还一种吃法，就是用酱油醋配点酸汤，捣碎一些蒜瓣，滴两滴香油，然后把馒头掰成一小块一小块的蘸了吃，这在全国上下也是绝无仅有的。<br>　　<br>　　因此，河南人说诸葛亮在南阳，580 万襄樊人民都笑了。<br>　　<br>　　刚刚在看到凤凰中文台&#8220;世纪大讲堂&#8221;节目中，某河南一个熟女观众问一个&#8216;题外话&#8217;，砖家老家是哪儿的？砖家只说了一句：&#8220;我是河南南阳的&#8221;，熟女紧接着就说了一句：&#8220;啊，你是南阳的，诸葛亮的故乡啊....&#8221;，我不知道观众说这句话是否河南人自己抬自己杠子还是当地政府指使的。总之在全球覆盖率最高的华人电视台上这么说，尽管强调这是个&#8216;题外话&#8217;，我觉得对襄樊的影响都是负面的。襄樊没有在大媒体上抛头露面的的专家，只是在襄樊城市这个小圈子里对一些鸡毛蒜皮的小事侃侃而谈，难免有失大家风范。什么时候如果有襄樊专家在央视或是凤视上露一回来，我就是不去现场，也要打个热线电话也说一句这样的&#8216;题外话&#8217;：&#8220;啊，你朗是襄樊人啊，诸葛亮就是从你们那儿走出来地... ...&#8221;<br>　　<br>　　即然古隆中历史上也好还是学者反复论证也好，这块地就在襄阳城西近郊，但这个社会就是谎言说多了，就变成事实了。我就在想，反正南阳人想争这个，咱襄樊市领导带个头，上京城告它一告，不论前景如何，咱首先得学会炒作吧？<br>　　<br>　　湖北的古典曲艺&#8220;黄梅戏&#8221;，现在被安徽人霸了去，说是它们的省戏，我靠，你安徽有没有一个自古以来就有的黄梅县？敢于这样搞？武汉人没出息，把自己的曲艺搞丢了，咱襄樊人不能让别人看咱们的短，咱不能把隆中再让河南人抢了去。现在隆中大部分游客是河南人，襄樊人自己觉得门票太贵，去一趟不划算，还不如到南漳山沟沟里漂一下流。实际上证明了襄樊人胆小，从中原躲到山沟沟里去了。襄樊人的消费观念也体现出了襄樊人的心底自白。万一有一天河南也说自己有漂流的好去处，襄樊人还到哪里克玩？自己挣自己人的钱不叫本事，要学会挣外地人的钱。就象打一家人围着打麻将一样，你赢我的，我赢你的，利益转过来转过去还是在这一个家庭中没有外流，你可以到外宣称自己的家庭 GDP 增长了多少个点多少个百分比，这也是实话实说。本来嘛，确实是形成利益流动了，就有理论产值给算出来了。但自己兜里没钱还是没钱，你挣这点钱还得看长辈的脸色。比如你第一次上你老丈人家打牌，你敢明目张胆的赢上几局？总得来说，这利济发展跟打麻将是一样的，只有外人参和进来，自己人才能联合做赢家，钱才是现花花的。<br>　　<br>　　我希望有朝一日，襄樊电视台新闻频道上播音员指高气仰的对着襄樊的老少爷们儿说：&#8220;美国XX公司去年给襄樊财政带来了 XX亿美元的税收&#8221;、&#8220;多国老外在人民广场天桥上摆摊要饭，被城管队员安置在慈善管理部门&#8221;、&#8220;麦当劳中国公司在北京被襄樊妞妞集团收购商标，鼓楼麦当劳将更改&#8216;妞妞麦&#8217;店名&#8221;、&#8220;襄樊农民自制热气球环球飞行成功，昨天市委市政府领导在诸葛亮广场欢迎勇士环球归来&#8221;、&#8220;风弥全球的特色小吃&#8216;襄樊炒花饭&#8217;和&#8216;襄阳炸酱面&#8217;在欧洲正式挤圬最后两家经营意大利面条和披沙的商家，欧式快餐在全球正式成为历史&#8221;，而不是&#8220;襄樊街道居民文化活动有声有色&#8221;、&#8220;一年一度的高考又来了，家长们都在.....&#8221;，傻子都知道，就一帮子老头老太太，家里没闲心操，挥着大扇子在广场上扭两圈就叫文化活动？襄樊只有老年人在活动？年轻人干啥子克老？外地人一问就把我们问住了。再说那个高考，从古代考秀才，考状元，到现代高考、职考，都几千年的全国统考风俗了，还有什么新闻价值？美国新闻联播也不见得报道：&#8220;国家领导人布什总统在白宫亲切接见美利坚合众国高考学生及家长代表，大家进行了很愉快的畅谈，并交换了统一的意见，在美国高考的几天时间内，全国交通全部停止，全国以石油为能源的机械、车辆一率不得运转，充分体现了美国国会对广大考生的关爱之心... ...&#8221;<br>　　<br></div>
    <br>
    <table cellSpacing=0 width="100%" align=center border=0>
        <tbody>
            <tr>
                <td align=right width=100></td>
                <td align=middle><font color=#6699cc size=-1>作者：<a href="http://1home.hainan.net/browse/listwriter.asp?vwriter=噩梦之瞳&amp;idwriter=0&amp;key=0" target=_blank>噩梦之瞳</a>&nbsp;&nbsp;回复日期：2006-8-10 06:10:00</font></td>
                <td align=right width=150></td>
            </tr>
        </tbody>
    </table>
    <div class=content style="WORD-WRAP: break-word">　　－－－做梦和吹牛是很爽的。<br>　　<br>　　所以，襄樊人要学会跟南阳人对着干，咱拿着老祖崇的东西不能放在家里当宠物食盆，咱也要学会炒作，要大炒特炒，炒的河南头不敢再提&#8220;隆中&#8221;这个词儿，要炒的全世界知道咱襄樊人为什么要炒，就象王菲生孩子一样，本来生孩子没多大个事儿，一炒， 孩子照片都要到三十万一张的地步了，咱不能骂王菲李亚鹏，你骂别人也是在骂自己。当然襄樊古隆中的建设不能学襄阳公园，进去了尽是私人承包地盘，圈一个个的内部围栏，然后你自己再买二道票再进去。襄阳公园原来可是襄樊人的骄傲啊。<br>　　<br>　　还好，南阳没有退路，河南缺水，你漂土去吧！襄樊人又乐了。自从看了周杰巴的&#8220;头文字D&#8221;全民飘移的活动就深入人心了。<br>　　<br>　　再拿咸菜来说,在襄樊,有喜欢吃川味榨菜的,但更多人喜欢吃本土的大头菜.武汉人引以为豪的热干面,到了襄樊,如果不加点大头菜丁,也许你压根儿就卖不出克~~~~襄樊人在别处我不敢说,起码外地的东西进了襄樊,不给本土产品一点面子,对不起,不用政府出面,襄樊老少爷们儿根本就不卖你的帐.后来我第一次去武汉吃热干面后,才知道热干面原本是放腌萝卜丝和酸豇豆的.<br>　　<br>　　四川的牛肉面八几年进到襄樊后，襄樊人在其基础上演化为牛杂面和牛油面，襄樊人不喜欢中不溜秋的环境和待遇。你要好，就你好到顶到天边，你要差，你就差的跟垃圾筒一样，于是乎襄樊人对于外地的饮食也进行了大规模的本土化改革。比如小笼包子，八十年代末进驻襄樊，本以为川军的包子能占领襄樊的市场了，但是从那以后，我在外面买包子吃，都发现个头一个二个变得跟小笼包子一样秀气了。原来只听说过上海人在馆子里吃个煎鸡蛋也只要半份，现在实际上发现其实襄樊人更秀气。<br>　　<br>　　秀气到什么程度呢？牛油面现在变成没有荤气儿的豆腐面老，油条炸的跟油馍筋一般长老～～～我现在时常怀念起原来五分钱一根的大油条了。<br>　　<br>　　也因此，天津大麻花到了襄樊之后，其实襄樊人并不是觉得大麻花好吃，而是勾起了襄樊人原来对油条的外观怀念－－瞧瞧，咱襄樊原来的油条就有这么大这么粗，仿佛在炫耀自己的老二。<br>　　<br>　　中国很多地方的小吃文化就能很体现出当地的人文风貌。记得某文学杂家在描述襄樊人过早，大概是如下文字：&#8220;从来没有一个地方的人民，早上还能把面条当作下酒之物的，若不是鲁迅先生在笔下描绘了一个孔乙已，想来绍兴的黄酒也比不过襄樊的。在这片土地上，不论是乡镇，还是闹市区，不论是机关干部、公务员，还是市井草民、大老板，在黄洒和面条面前，一率是平等的。&#8221;甭管你昨天晚上吃的是啥，只要早上吃面条喝黄酒，那中午拉出来的*尿香臭都是平均的。想来环卫部门的工人兄弟对这个最有发言权。甭说别的，前几年非典那阵子，很多地方死了人，襄樊人早上黄酒照喝不误，襄樊人有点乐天派，&#8220;有那个命，你就多活几年，没得那个命，明天早上出门就被车轧死&#8221;，这是经常挂在嘴边的，很直爽。黄酒里面含了什么东西让人体有抵抗力，这个也没得专家学者专门研究并向全国通报一番。可惜啊，一个商机。<br>　　<br>　　卖黄酒的老板擤一下鼻涕：&#8220;不喝黄酒的尽是得这病那病的，有的老家伙走路都摸不着方向，但每天早上喝一大碗酒，剥俩蒜掰，每年都还能看得到他。&#8221;<br>　　<br>　　襄樊自打来了一个田书记就改观多了,给人的印象很甜,为人处世也很甜,办事也办的让襄樊人甜丝丝的,一上马不久先把收费站给敲了,然后把治安给抓了,搞的人对老田同志很是有些感念,一时间,各媒体上,网站上,论坛上对政府形象加以赞扬的话让人感觉在襄樊市政府的领导之下,襄樊人民提前进入共产主义了.<br>　　<br>　　共产党办事是讲究策略和方式的,当把余家湖这个黑疤揭掉后,几乎没有任何媒体/网站/论坛站出来报个道,叫个好.为嘛呢?咱联想一下就知道咧.在这里就小姐一事来谈论襄樊人,并不恰当.<br>　　<br>　　襄樊人现在觉得啥事离自己远,又离自己不远.比如说房产.又觉得啥事离自己近,又不近,比如说政府持法部门的形象.襄樊人有的人认为自己胡搅蛮缠,政府就不敢于把自己怎么样.比如市政府信访办门口,市政府好心好意给你买了面包,给你送了馒头,你吃也不吃,扔到地上.我觉得这是非常幼稚的.不论政府再好再不好,你必尽要生存在与他相同的一个空间内.你要觉得政府不好,你可以不来上访么.你来上访了,你一上来就砸东西骂人,公安不逮你逮谁?<br>　　<br>　　襄樊人喜欢外面"混"的娃子们.不过在外面混的有头有脸的人物有个最大的区别,他一上来不是恶狠狠的拿刀架在你脖子上,首先跟你讲道理,叫你娃子哭不出来,他又给你发烟又给你好脸色陪你笑,你也笑不出来,然后只得按照双方的"协议"和解.最憨的就是刚开始步入社会混的小娃子们,喜欢抖狠,喜欢充人物,喜欢不可一世.这种人往往被前者所利用.襄樊人一开始并不相信法律,所以喜欢吹自己跟哪个哪个混的娃子们关系好的很,在一起吃过饭,在一起打过牌,在一起上过厕所,在一起割过包皮.<br>　　<br>　　当身边的黑社会逐渐被公安局打掉消灭后,才知道,那娃子其实可笑.什么叫"混"的可以?把钱大把大把弄到自己怀里,这才叫混的玩味儿.<br>　　<br>　　几年前,在一起喝酒时说:"在某某街区没人敢惹老子,不少老板要我们罩场子",现在事隔几年再到同一地方喝酒却说:"在某某行业没人竞争得过老子,不少老板要看我们脸色吃饭",原来吊不砍砍的说"老子一个月换个俩娃儿,想玩小姐玩小姐,想上处女上处女",现在皮笑肉不笑的说"老子半年换个车,想开本田开本田,想开福特开福特"<br>　　<br>　　过个年节也没啥感觉了,豆腐面现在成过早主打了,老白条现在并不好抽了,襄江水的口感也不如以前了,老街老巷都在改造了,余家湖也找不到俩娃儿了,电动车在满大街乱窜了,焦酥麻花的叫卖者已经做古了,襄樊改襄阳的说法又过时了... ...<br>　　<br>　　襄樊正处在一个历史与现代,人文与民俗交汇的十字路口,有些东西熟悉着,但被抛掉,有些东西陌生着,但被接受,襄樊人正学的越来越务实,虽然还有一点懒散,虽然还有一点看重别人施舍给自己的所谓人际关系.其实要不了多久,襄樊人就会知道,与其靠别人改变自己的命运,不如靠自己的努力奋斗去创造改变命运的环境.<br>　　<br>　　烧一壶水,撒一把茶叶,发一杯酽茶,抽一根红金龙,点一下鼠标... ...</div>
</form>
<img src ="http://www.cppblog.com/wlwlxj/aggbug/44247.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wlwlxj/" target="_blank">万连文</a> 2008-03-12 11:46 <a href="http://www.cppblog.com/wlwlxj/archive/2008/03/12/44247.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>回武汉咯</title><link>http://www.cppblog.com/wlwlxj/archive/2008/03/02/43556.html</link><dc:creator>万连文</dc:creator><author>万连文</author><pubDate>Sun, 02 Mar 2008 02:42:00 GMT</pubDate><guid>http://www.cppblog.com/wlwlxj/archive/2008/03/02/43556.html</guid><wfw:comment>http://www.cppblog.com/wlwlxj/comments/43556.html</wfw:comment><comments>http://www.cppblog.com/wlwlxj/archive/2008/03/02/43556.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/wlwlxj/comments/commentRss/43556.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wlwlxj/services/trackbacks/43556.html</trackback:ping><description><![CDATA[<br>回去尝试毕业，祝我好运!!!!!!
<img src ="http://www.cppblog.com/wlwlxj/aggbug/43556.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wlwlxj/" target="_blank">万连文</a> 2008-03-02 10:42 <a href="http://www.cppblog.com/wlwlxj/archive/2008/03/02/43556.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>今天喝多了</title><link>http://www.cppblog.com/wlwlxj/archive/2008/02/28/43414.html</link><dc:creator>万连文</dc:creator><author>万连文</author><pubDate>Thu, 28 Feb 2008 14:42:00 GMT</pubDate><guid>http://www.cppblog.com/wlwlxj/archive/2008/02/28/43414.html</guid><wfw:comment>http://www.cppblog.com/wlwlxj/comments/43414.html</wfw:comment><comments>http://www.cppblog.com/wlwlxj/archive/2008/02/28/43414.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wlwlxj/comments/commentRss/43414.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wlwlxj/services/trackbacks/43414.html</trackback:ping><description><![CDATA[喝了4两二锅头，加一瓶燕京，似乎有点量了。马上就要回武汉了，是富是祸，老天定！！！！
<img src ="http://www.cppblog.com/wlwlxj/aggbug/43414.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wlwlxj/" target="_blank">万连文</a> 2008-02-28 22:42 <a href="http://www.cppblog.com/wlwlxj/archive/2008/02/28/43414.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VC8中MFC集成ATL组件注册时注意的一个问题</title><link>http://www.cppblog.com/wlwlxj/archive/2008/02/26/43247.html</link><dc:creator>万连文</dc:creator><author>万连文</author><pubDate>Tue, 26 Feb 2008 03:49:00 GMT</pubDate><guid>http://www.cppblog.com/wlwlxj/archive/2008/02/26/43247.html</guid><wfw:comment>http://www.cppblog.com/wlwlxj/comments/43247.html</wfw:comment><comments>http://www.cppblog.com/wlwlxj/archive/2008/02/26/43247.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wlwlxj/comments/commentRss/43247.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wlwlxj/services/trackbacks/43247.html</trackback:ping><description><![CDATA[<br>由于VC8生成MFC程序时候如果选择创建solution，exe不在本目录的debug目录下，而是在solution的debug目录下。当加入atl支持时候，生成的tlb却在本目录的debug下。此时类型库注册需要手工执行：%exe路径% -RegServer。此时，如果tlb不在exe统一目录，注册是失败的。所以一定要拷贝到当前目录再注册。
<img src ="http://www.cppblog.com/wlwlxj/aggbug/43247.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wlwlxj/" target="_blank">万连文</a> 2008-02-26 11:49 <a href="http://www.cppblog.com/wlwlxj/archive/2008/02/26/43247.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>win32常规窗口Bridge</title><link>http://www.cppblog.com/wlwlxj/archive/2008/01/20/41544.html</link><dc:creator>万连文</dc:creator><author>万连文</author><pubDate>Sun, 20 Jan 2008 15:09:00 GMT</pubDate><guid>http://www.cppblog.com/wlwlxj/archive/2008/01/20/41544.html</guid><wfw:comment>http://www.cppblog.com/wlwlxj/comments/41544.html</wfw:comment><comments>http://www.cppblog.com/wlwlxj/archive/2008/01/20/41544.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cppblog.com/wlwlxj/comments/commentRss/41544.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wlwlxj/services/trackbacks/41544.html</trackback:ping><description><![CDATA[<br>通过窗口过程替换，把win32窗口纳入到布局管理当中，对于Listview，Treeview、edit之类的界面元素使用系统的是非常经济实惠也是有效的方法。对于按钮，fade效果已经实现。效果：<br><img height=500 alt="" src="http://www.cppblog.com/images/cppblog_com/wlwlxj/730/o_vista.PNG" width=623 border=0><br><br><img height=500 alt="" src="http://www.cppblog.com/images/cppblog_com/wlwlxj/730/o_skinned.PNG" width=623 border=0><br><br>计划：<br>引入MDI<br>MFC文档结构支持<br>activex控件的host进一步完善<br>.net控件的host以及通信机制进一步完善<br>web控件（由于使用较多）的定制行处理<br>flash控件的通讯机制<br>控件的丰富<br>windows平台窗口skin的彻底解决<br>类似Json结构的Databind<br>脚本引擎的支持<br>窗口特效支持<br>线程支持<br>soap支持<br>设计器（？？？？）<br><br>先想到这么多，有时间就做做，不知道何年何月，唉，忙，最近研究libjingle头都大，线程＋信号，绕来绕去。 
<img src ="http://www.cppblog.com/wlwlxj/aggbug/41544.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wlwlxj/" target="_blank">万连文</a> 2008-01-20 23:09 <a href="http://www.cppblog.com/wlwlxj/archive/2008/01/20/41544.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hook模块加入</title><link>http://www.cppblog.com/wlwlxj/archive/2008/01/05/40433.html</link><dc:creator>万连文</dc:creator><author>万连文</author><pubDate>Fri, 04 Jan 2008 16:43:00 GMT</pubDate><guid>http://www.cppblog.com/wlwlxj/archive/2008/01/05/40433.html</guid><wfw:comment>http://www.cppblog.com/wlwlxj/comments/40433.html</wfw:comment><comments>http://www.cppblog.com/wlwlxj/archive/2008/01/05/40433.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/wlwlxj/comments/commentRss/40433.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wlwlxj/services/trackbacks/40433.html</trackback:ping><description><![CDATA[<br>化了一天时间，把Hook功能集成进来。但是标准对话框尤其是新版本的OpenFile，还有一点问题，有时间再慢慢解决。.NET示例没做出了，一调试IDE就死，郁闷死了。<br><br>图片：<br><img height=377 alt="" src="http://www.cppblog.com/images/cppblog_com/wlwlxj/730/o_hook_mfc.PNG" width=576 border=0><br><br><img height=377 alt="" src="http://www.cppblog.com/images/cppblog_com/wlwlxj/730/o_hook_mfc2.PNG" width=576 border=0>&nbsp;<br><br><br><br>Hook VB<br><img height=381 alt="" src="http://www.cppblog.com/images/cppblog_com/wlwlxj/730/o_UIHook01.PNG" width=464 border=0> <br><br>Hook OpenDialog<br><img alt="" src="http://www.cppblog.com/images/cppblog_com/wlwlxj/730/o_UIHook02.PNG"> <br><br>Hook .NET<br><img alt="" src="http://www.cppblog.com/images/cppblog_com/wlwlxj/730/o_UIHook03.PNG">&nbsp;<br><br><br>通过集成Win32窗口，使得控件可以大大的丰富：下面是Tree，描述主要如下：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">Win32CtlBridge&nbsp;</span><span style="COLOR: #ff0000">class</span><span style="COLOR: #0000ff">="SysTreeView32"</span><span style="COLOR: #ff0000">&nbsp;&nbsp;name</span><span style="COLOR: #0000ff">="nettree"</span><span style="COLOR: #0000ff">/&gt;</span></div>
<br><img height=500 alt="" src="http://www.cppblog.com/images/cppblog_com/wlwlxj/730/o_Win32Bridge.PNG" width=623 border=0>
<img src ="http://www.cppblog.com/wlwlxj/aggbug/40433.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wlwlxj/" target="_blank">万连文</a> 2008-01-05 00:43 <a href="http://www.cppblog.com/wlwlxj/archive/2008/01/05/40433.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>界面库纳入新的窗口风格(Vista)</title><link>http://www.cppblog.com/wlwlxj/archive/2008/01/04/40376.html</link><dc:creator>万连文</dc:creator><author>万连文</author><pubDate>Thu, 03 Jan 2008 16:43:00 GMT</pubDate><guid>http://www.cppblog.com/wlwlxj/archive/2008/01/04/40376.html</guid><wfw:comment>http://www.cppblog.com/wlwlxj/comments/40376.html</wfw:comment><comments>http://www.cppblog.com/wlwlxj/archive/2008/01/04/40376.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.cppblog.com/wlwlxj/comments/commentRss/40376.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wlwlxj/services/trackbacks/40376.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Vista效果窗口&nbsp;&nbsp;<a href='http://www.cppblog.com/wlwlxj/archive/2008/01/04/40376.html'>阅读全文</a><img src ="http://www.cppblog.com/wlwlxj/aggbug/40376.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wlwlxj/" target="_blank">万连文</a> 2008-01-04 00:43 <a href="http://www.cppblog.com/wlwlxj/archive/2008/01/04/40376.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ACDK 的学习之旅--(5) 第一个小应用</title><link>http://www.cppblog.com/wlwlxj/archive/2007/12/28/39846.html</link><dc:creator>万连文</dc:creator><author>万连文</author><pubDate>Fri, 28 Dec 2007 09:05:00 GMT</pubDate><guid>http://www.cppblog.com/wlwlxj/archive/2007/12/28/39846.html</guid><wfw:comment>http://www.cppblog.com/wlwlxj/comments/39846.html</wfw:comment><comments>http://www.cppblog.com/wlwlxj/archive/2007/12/28/39846.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/wlwlxj/comments/commentRss/39846.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wlwlxj/services/trackbacks/39846.html</trackback:ping><description><![CDATA[&nbsp;通过几天的学习，发现这个库不小，里面有不少地方也是需要好好理解的。不过，好的是代码结构非常之清晰，看起来就舒服。<br><br>使用他的cfg脚本引擎做了一个demo，解析器。<br><br>code：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;acdkmain(RStringArray&nbsp;args)<br><img id=Codehighlighter1_32_729_Open_Image onclick="this.style.display='none'; Codehighlighter1_32_729_Open_Text.style.display='none'; Codehighlighter1_32_729_Closed_Image.style.display='inline'; Codehighlighter1_32_729_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_32_729_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_32_729_Closed_Text.style.display='none'; Codehighlighter1_32_729_Open_Image.style.display='inline'; Codehighlighter1_32_729_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_32_729_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_32_729_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_40_686_Open_Image onclick="this.style.display='none'; Codehighlighter1_40_686_Open_Text.style.display='none'; Codehighlighter1_40_686_Closed_Image.style.display='inline'; Codehighlighter1_40_686_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_40_686_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_40_686_Closed_Text.style.display='none'; Codehighlighter1_40_686_Open_Image.style.display='inline'; Codehighlighter1_40_686_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_40_686_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_40_686_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RString&nbsp;code&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;String();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::acdk::cfgscript::RScript&nbsp;script&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;::acdk::cfgscript::Script(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;mem&gt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::acdk::cfgscript::RProps&nbsp;props&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;::acdk::cfgscript::Props();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(code</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">compareToIgnoreCase(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">exit</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_269_683_Open_Image onclick="this.style.display='none'; Codehighlighter1_269_683_Open_Text.style.display='none'; Codehighlighter1_269_683_Closed_Image.style.display='inline'; Codehighlighter1_269_683_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_269_683_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_269_683_Closed_Text.style.display='none'; Codehighlighter1_269_683_Open_Image.style.display='inline'; Codehighlighter1_269_683_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_269_683_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_269_683_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System::out</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">print(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">wlw:&gt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;code&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;System::in</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">readLine();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">code</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">endsWith(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">))<br><img id=Codehighlighter1_368_396_Open_Image onclick="this.style.display='none'; Codehighlighter1_368_396_Open_Text.style.display='none'; Codehighlighter1_368_396_Closed_Image.style.display='inline'; Codehighlighter1_368_396_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_368_396_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_368_396_Closed_Text.style.display='none'; Codehighlighter1_368_396_Open_Image.style.display='inline'; Codehighlighter1_368_396_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_368_396_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_368_396_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;code&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;code&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;code&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">wlw=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">code;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">eval(code,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">props,&nbsp;::acdk::cfgscript::ScriptReadWriteParent);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RString&nbsp;val&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;props</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">getEvaluatedStringVal(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">wlw</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System::out</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">print(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System::out</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">println(val);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System::out</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">=====================================</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(RThrowable&nbsp;ex)<br><img id=Codehighlighter1_711_714_Open_Image onclick="this.style.display='none'; Codehighlighter1_711_714_Open_Text.style.display='none'; Codehighlighter1_711_714_Closed_Image.style.display='inline'; Codehighlighter1_711_714_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_711_714_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_711_714_Closed_Text.style.display='none'; Codehighlighter1_711_714_Open_Image.style.display='inline'; Codehighlighter1_711_714_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_711_714_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_711_714_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>效果：<br><img src="http://www.cppblog.com/images/cppblog_com/wlwlxj/730/o_acdk_hello_001.PNG" border=0>
<img src ="http://www.cppblog.com/wlwlxj/aggbug/39846.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wlwlxj/" target="_blank">万连文</a> 2007-12-28 17:05 <a href="http://www.cppblog.com/wlwlxj/archive/2007/12/28/39846.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ACDK 的学习之旅--(4) ACDK中的元信息Metainfo(RTTI)</title><link>http://www.cppblog.com/wlwlxj/archive/2007/12/26/39667.html</link><dc:creator>万连文</dc:creator><author>万连文</author><pubDate>Wed, 26 Dec 2007 04:00:00 GMT</pubDate><guid>http://www.cppblog.com/wlwlxj/archive/2007/12/26/39667.html</guid><wfw:comment>http://www.cppblog.com/wlwlxj/comments/39667.html</wfw:comment><comments>http://www.cppblog.com/wlwlxj/archive/2007/12/26/39667.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wlwlxj/comments/commentRss/39667.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wlwlxj/services/trackbacks/39667.html</trackback:ping><description><![CDATA[<br>这个基本就是ACDK最精华的地方了吧。C++本身的元信息很少，借助RTTI可以在运行期识别对象类型，而模板也仅仅是在编译期依靠模板元达到目的。<br><br>ACDK本身就是基于元信息：一个支持挖掘类层次结构，字段，构造，方法的高级版本的RTTI。对应与java和.net的反射机制。<br><br>元信息可以用来提供垃圾回收、动态加载类，序列化，附加用户自定义属性，运行期动态访问对象的各个方面信息。我的理解Metainfo就是对类本身的一种解析，对编程语言的一种开放式扩展。<br><br>元信息（Metainfo）＝＝反射（Reflection）<br>编程语言中的元信息就是在编程语言中存在一种运行期编程语言的类型的内部构造信息。<br>很多解释型语言依赖元信息来构造复合类型，象lisp和perl。这些语言中最重要的就是元信息或者反射机制，也存在于java和.net中。<br><br>当然很多编译器只有有限的元信息机制，象C++的RTTI。你可以发现，你能够通过typeinfo获取类的名字，仅此而已，无法获得方法，成员，参数等等。当然com技术部分实现了metainfo，方法，成员，参数这些都可以从类型库中获取，但是仍然无法获取内部构造信息。<br><br>由于C++类型系统的复杂性，它本身没有实现反射机制。近年来最重要的两种语言java和C#实现了反射机制，这两种语言的类型系统要简单很多，他们都抛弃了C++中晦涩的部分，这是非常好的做法，我觉得C++程序员的大部分时间都花在这些事情上。<br><br><br>使用ACDK的元信息<br><br>元信息级别<br><br>1、无元信息<br>假如仅仅利用ACDK框架构造类，无需脚本调用，动态加载，类中可以不添加元信息<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">ACDK_DECL_CLASS(MyClass);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;MyClass&nbsp;:&nbsp;</span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000">&nbsp;acdk::lang::Object,&nbsp;</span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000">&nbsp;acdk::lang::Comparable<br><img id=Codehighlighter1_104_289_Open_Image onclick="this.style.display='none'; Codehighlighter1_104_289_Open_Text.style.display='none'; Codehighlighter1_104_289_Closed_Image.style.display='inline'; Codehighlighter1_104_289_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_104_289_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_104_289_Closed_Text.style.display='none'; Codehighlighter1_104_289_Open_Image.style.display='inline'; Codehighlighter1_104_289_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_104_289_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_104_289_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;RString&nbsp;_myString;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br><img id=Codehighlighter1_175_176_Open_Image onclick="this.style.display='none'; Codehighlighter1_175_176_Open_Text.style.display='none'; Codehighlighter1_175_176_Closed_Image.style.display='inline'; Codehighlighter1_175_176_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_175_176_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_175_176_Closed_Text.style.display='none'; Codehighlighter1_175_176_Open_Image.style.display='inline'; Codehighlighter1_175_176_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;MyClass()&nbsp;:&nbsp;_myString(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">hello</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)&nbsp;</span><span id=Codehighlighter1_175_176_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_175_176_Open_Text><span style="COLOR: #000000">{}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;compareTo(IN(RObject)&nbsp;other)<br><img id=Codehighlighter1_213_244_Open_Image onclick="this.style.display='none'; Codehighlighter1_213_244_Open_Text.style.display='none'; Codehighlighter1_213_244_Closed_Image.style.display='inline'; Codehighlighter1_213_244_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_213_244_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_213_244_Closed_Text.style.display='none'; Codehighlighter1_213_244_Open_Image.style.display='inline'; Codehighlighter1_213_244_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_213_244_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_213_244_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;always&nbsp;equal</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_257_287_Open_Image onclick="this.style.display='none'; Codehighlighter1_257_287_Open_Text.style.display='none'; Codehighlighter1_257_287_Closed_Image.style.display='inline'; Codehighlighter1_257_287_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_257_287_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_257_287_Closed_Text.style.display='none'; Codehighlighter1_257_287_Open_Image.style.display='inline'; Codehighlighter1_257_287_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;foo()&nbsp;</span><span id=Codehighlighter1_257_287_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_257_287_Open_Text><span style="COLOR: #000000">{&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;_myString</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">length();&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;using&nbsp;it</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">RMyClass&nbsp;myClass&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;MyClass();</span></div>
类本身没有引用计数，引用计数依靠的是垃圾回收机制，这样的类是不符合脚本语言使用的。<br><br>2、基本的元信息<br>类派生结构<br>实现了ClassLoader功能<br><br>3、扩展的元信息<br>反射<br>序列化<br>脚本调用<br><br>4、动态方法调用代理<br>允许脚本语言使用C++接口<br>C++类派生，虚方法重写<br><br>实现了元信息的ACDK类可以通过名字来定位并加载。<br><br>原来.net中类型的属性信息就是可以用来实现AOP的咚咚？？？？妈的，就tmd扯概念啊。搞得我现在才弄明白这个概念。<br><br>
<img src ="http://www.cppblog.com/wlwlxj/aggbug/39667.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wlwlxj/" target="_blank">万连文</a> 2007-12-26 12:00 <a href="http://www.cppblog.com/wlwlxj/archive/2007/12/26/39667.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>嘿嘿 转载</title><link>http://www.cppblog.com/wlwlxj/archive/2007/12/25/39585.html</link><dc:creator>万连文</dc:creator><author>万连文</author><pubDate>Tue, 25 Dec 2007 07:25:00 GMT</pubDate><guid>http://www.cppblog.com/wlwlxj/archive/2007/12/25/39585.html</guid><wfw:comment>http://www.cppblog.com/wlwlxj/comments/39585.html</wfw:comment><comments>http://www.cppblog.com/wlwlxj/archive/2007/12/25/39585.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wlwlxj/comments/commentRss/39585.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wlwlxj/services/trackbacks/39585.html</trackback:ping><description><![CDATA[<br><span id=r_c_q_p0><span id=r_c_q_p0>80后承担了太多原本不应该他们的责任,如果没有文化大革命那80后现在不用承担原本不属于他们的发展责任如果没有多生孩子80后也不用千军万马挤高考,最后自费上学.70后用他们手中的钞票和座下的奔奔带走了我们的爱人,90后用他们无知的身体透支我们创造的财富价值,我们是时代跃进时期资本财富积累的殉道者.80后是我们的标签,英雄的标签,没有80后夜以继日的coding,哪有70后PM下班后的"把妹".80后是时代的标志,将来的历史书中会这样记载:"曾经有一群被称作80后的前辈们,用他们勤劳的手指为我们构筑了今天美好的生活,他们像耶稣一样用科技指引了我们今天生活的方向,同时却因种种社会分配的不公被钉上了些许不堪的标签,让我们缅怀这些开荒的牛仔们."请那些还在享受80后服务的60后70后甚至90后们,在评论80后时多花些时间考虑下自己的社会责任.</span></span>
<img src ="http://www.cppblog.com/wlwlxj/aggbug/39585.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wlwlxj/" target="_blank">万连文</a> 2007-12-25 15:25 <a href="http://www.cppblog.com/wlwlxj/archive/2007/12/25/39585.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ACDK 的学习之旅--(3) ACDK中的类型 </title><link>http://www.cppblog.com/wlwlxj/archive/2007/12/25/39565.html</link><dc:creator>万连文</dc:creator><author>万连文</author><pubDate>Tue, 25 Dec 2007 04:24:00 GMT</pubDate><guid>http://www.cppblog.com/wlwlxj/archive/2007/12/25/39565.html</guid><wfw:comment>http://www.cppblog.com/wlwlxj/comments/39565.html</wfw:comment><comments>http://www.cppblog.com/wlwlxj/archive/2007/12/25/39565.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wlwlxj/comments/commentRss/39565.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wlwlxj/services/trackbacks/39565.html</trackback:ping><description><![CDATA[<br>ACDK基于C++的模型（基本类型、接口、对象类，数组，异常，枚举和命名空间）组织了自己的类型模型。<br><br>1、基本模型<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 基本类型&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object对象封装&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位数(bit)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bool&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Boolean&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Character&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uc2char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UnicodeCharacter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;16<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uc4char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UnicodeCharacter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;23<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;byte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Byte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;short&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Short&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;16<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;32&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jlong&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 64<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Float&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 32<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Double&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;64<br><br><br>2、Enum类型<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用C++的enum，假如需要考虑ACDK的元编译，需要使用宏：ACDK_DECL_ENUM，用来提供元信息。动态库需要导出类型的时候，使用ACDK_DEF_LIB_ENUM。不牵扯到元信息的Enum类型可以在定义的时候使用foreign关键字。<br><br>3、对象类型<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 必须直接或者间接从Object派生<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;declare&nbsp;the&nbsp;R-type&nbsp;RLegalAcdkClass<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;and&nbsp;the&nbsp;Array&nbsp;type&nbsp;LegalAcdkClassArray&nbsp;and&nbsp;RLegalAcdkClassArray</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">ACDK_DECL_CLASS(LegalAcdkClass);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;The&nbsp;class&nbsp;itself:</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;LegalAcdkClass&nbsp;:&nbsp;</span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000">&nbsp;acdk::lang::Object&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;extend&nbsp;the&nbsp;Object&nbsp;class</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_236_483_Open_Image onclick="this.style.display='none'; Codehighlighter1_236_483_Open_Text.style.display='none'; Codehighlighter1_236_483_Closed_Image.style.display='inline'; Codehighlighter1_236_483_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_236_483_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_236_483_Closed_Text.style.display='none'; Codehighlighter1_236_483_Open_Image.style.display='inline'; Codehighlighter1_236_483_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_236_483_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_236_483_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;ACDK_WITH_METAINFO(LegalAcdkClass);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;optional,&nbsp;for&nbsp;class&nbsp;information&nbsp;see&nbsp;Metainfo</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;RString&nbsp;message;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;constructor</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;LegalAcdkClass()&nbsp;:&nbsp;Object()&nbsp;,&nbsp;message(</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_419_422_Open_Image onclick="this.style.display='none'; Codehighlighter1_419_422_Open_Text.style.display='none'; Codehighlighter1_419_422_Closed_Image.style.display='inline'; Codehighlighter1_419_422_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_419_422_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_419_422_Closed_Text.style.display='none'; Codehighlighter1_419_422_Open_Image.style.display='inline'; Codehighlighter1_419_422_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_419_422_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_419_422_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;a&nbsp;method</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;RString&nbsp;getMessage()<br><img id=Codehighlighter1_460_481_Open_Image onclick="this.style.display='none'; Codehighlighter1_460_481_Open_Text.style.display='none'; Codehighlighter1_460_481_Closed_Image.style.display='inline'; Codehighlighter1_460_481_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_460_481_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_460_481_Closed_Text.style.display='none'; Codehighlighter1_460_481_Open_Image.style.display='inline'; Codehighlighter1_460_481_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_460_481_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_460_481_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;message;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;</span></div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不能多继承类，但是可以提供一种更好的办法就是多继承接口。</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;declare&nbsp;the&nbsp;R-type&nbsp;RLegalAcdkClass<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;and&nbsp;the&nbsp;Array&nbsp;type&nbsp;LegalAcdkClassArray&nbsp;and&nbsp;RLegalAcdkClassArray</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">ACDK_DECL_CLASS(LegalAcdkClass);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;The&nbsp;class&nbsp;itself:</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;LegalAcdkClass&nbsp;:&nbsp;</span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000">&nbsp;acdk::lang::Object&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;extend&nbsp;the&nbsp;Object&nbsp;class</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000">&nbsp;acdk::lang::Comparable&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;implements&nbsp;the&nbsp;interface</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_300_621_Open_Image onclick="this.style.display='none'; Codehighlighter1_300_621_Open_Text.style.display='none'; Codehighlighter1_300_621_Closed_Image.style.display='inline'; Codehighlighter1_300_621_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_300_621_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_300_621_Closed_Text.style.display='none'; Codehighlighter1_300_621_Open_Image.style.display='inline'; Codehighlighter1_300_621_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_300_621_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_300_621_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;ACDK_WITH_METAINFO(LegalAcdkClass)&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;optional,&nbsp;for&nbsp;class&nbsp;information&nbsp;see&nbsp;Metainfo</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;RString&nbsp;message;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;implement&nbsp;the&nbsp;Comparable&nbsp;interface&nbsp;method</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;compareTo(IN(RObject)&nbsp;other)<br><img id=Codehighlighter1_502_577_Open_Image onclick="this.style.display='none'; Codehighlighter1_502_577_Open_Text.style.display='none'; Codehighlighter1_502_577_Closed_Image.style.display='inline'; Codehighlighter1_502_577_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_502_577_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_502_577_Closed_Text.style.display='none'; Codehighlighter1_502_577_Open_Image.style.display='inline'; Codehighlighter1_502_577_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_502_577_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_502_577_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;getMessage()</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">compareTo(RLegalAcdkClass(other)</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">getMessage());<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_601_619_Open_Image onclick="this.style.display='none'; Codehighlighter1_601_619_Open_Text.style.display='none'; Codehighlighter1_601_619_Closed_Image.style.display='inline'; Codehighlighter1_601_619_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_601_619_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_601_619_Closed_Text.style.display='none'; Codehighlighter1_601_619_Open_Image.style.display='inline'; Codehighlighter1_601_619_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;RString&nbsp;getMessage()&nbsp;</span><span id=Codehighlighter1_601_619_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_601_619_Open_Text><span style="COLOR: #000000">{&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;message;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;</span></div>
<p>&nbsp;&nbsp;&nbsp;&nbsp; Class信息</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">RStringBuffer&nbsp;sb1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;StringBuffer(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ACDK</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RStringBuffer&nbsp;sb2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;StringBuffer(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">JAVA</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RClass&nbsp;cls1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;sb1</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">getClass();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RClass&nbsp;cls2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;sb2</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">getClass();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">assert</span><span style="COLOR: #000000">(cls1&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;cls2);&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;always&nbsp;true</span></div>
<p>&nbsp;&nbsp;&nbsp; 你可以定义不符合acdk规范的类型已经结构等，但是会失去acdk提供的一些特性。</p>
<br>ACDK的异常捕获需要注意：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;foo()<br><img id=Codehighlighter1_11_329_Open_Image onclick="this.style.display='none'; Codehighlighter1_11_329_Open_Text.style.display='none'; Codehighlighter1_11_329_Closed_Image.style.display='inline'; Codehighlighter1_11_329_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_11_329_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_11_329_Closed_Text.style.display='none'; Codehighlighter1_11_329_Open_Image.style.display='inline'; Codehighlighter1_11_329_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_11_329_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_11_329_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_17_19_Open_Image onclick="this.style.display='none'; Codehighlighter1_17_19_Open_Text.style.display='none'; Codehighlighter1_17_19_Closed_Image.style.display='inline'; Codehighlighter1_17_19_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_17_19_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_17_19_Closed_Text.style.display='none'; Codehighlighter1_17_19_Open_Image.style.display='inline'; Codehighlighter1_17_19_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000">&nbsp;</span><span id=Codehighlighter1_17_19_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_17_19_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_55_93_Open_Image onclick="this.style.display='none'; Codehighlighter1_55_93_Open_Text.style.display='none'; Codehighlighter1_55_93_Closed_Image.style.display='inline'; Codehighlighter1_55_93_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_55_93_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_55_93_Closed_Text.style.display='none'; Codehighlighter1_55_93_Open_Image.style.display='inline'; Codehighlighter1_55_93_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>}</span></span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">&nbsp;(acdk::io::RIOException&nbsp;ex)&nbsp;</span><span id=Codehighlighter1_55_93_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_55_93_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;handle&nbsp;here&nbsp;type&nbsp;of&nbsp;IOException.</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_117_155_Open_Image onclick="this.style.display='none'; Codehighlighter1_117_155_Open_Text.style.display='none'; Codehighlighter1_117_155_Closed_Image.style.display='inline'; Codehighlighter1_117_155_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_117_155_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_117_155_Closed_Text.style.display='none'; Codehighlighter1_117_155_Open_Image.style.display='inline'; Codehighlighter1_117_155_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">&nbsp;(RThrowable&nbsp;ex)&nbsp;</span><span id=Codehighlighter1_117_155_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_117_155_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;handle&nbsp;all&nbsp;other&nbsp;ACDK&nbsp;exceptions</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top></span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_157_327_Open_Image onclick="this.style.display='none'; Codehighlighter1_157_327_Open_Text.style.display='none'; Codehighlighter1_157_327_Closed_Image.style.display='inline'; Codehighlighter1_157_327_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_157_327_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_157_327_Closed_Text.style.display='none'; Codehighlighter1_157_327_Open_Image.style.display='inline'; Codehighlighter1_157_327_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span id=Codehighlighter1_157_327_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_157_327_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">&nbsp;DONT&nbsp;DO&nbsp;THAT<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>otherwise&nbsp;Nullpointer&nbsp;exception&nbsp;will&nbsp;not&nbsp;handled&nbsp;properly<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>}&nbsp;catch&nbsp;(<img src="http://www.cppblog.com/Images/dot.gif">)&nbsp;{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>//&nbsp;this&nbsp;are&nbsp;not&nbsp;ACDK&nbsp;exception<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>//&nbsp;for&nbsp;example&nbsp;std::exception,&nbsp;if&nbsp;you&nbsp;use&nbsp;STL<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top></span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br><br>方法参数缺省传递方式是：<br>a、基本类型(int,float,char,etc)按值传递<br>b、enum按值<br>c、类和接口按引用传递<br>d、数组按引用传递<br><br>参数的in,out,inout<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;foo(IN(RStringBuffer)&nbsp;buffer,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;len)<br><img id=Codehighlighter1_44_218_Open_Image onclick="this.style.display='none'; Codehighlighter1_44_218_Open_Text.style.display='none'; Codehighlighter1_44_218_Closed_Image.style.display='inline'; Codehighlighter1_44_218_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_44_218_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_44_218_Closed_Text.style.display='none'; Codehighlighter1_44_218_Open_Image.style.display='inline'; Codehighlighter1_44_218_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_44_218_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_44_218_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">buffer&nbsp;=&nbsp;new&nbsp;StringBuffer();&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;calle