﻿<?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>语源科技BlogJava-&lt;size=60&gt; 通关旅 &lt;/size&gt;</title><link>http://www.blogjava.net/softgamer/</link><description>softgamer 的痕迹</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 07:53:51 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 07:53:51 GMT</pubDate><ttl>60</ttl><item><title>C++体会 -- 静态数据成员</title><link>http://www.blogjava.net/softgamer/archive/2007/02/10/99097.html</link><dc:creator>softgamer</dc:creator><author>softgamer</author><pubDate>Sat, 10 Feb 2007 01:12:00 GMT</pubDate><guid>http://www.blogjava.net/softgamer/archive/2007/02/10/99097.html</guid><wfw:comment>http://www.blogjava.net/softgamer/comments/99097.html</wfw:comment><comments>http://www.blogjava.net/softgamer/archive/2007/02/10/99097.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/softgamer/comments/commentRss/99097.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/softgamer/services/trackbacks/99097.html</trackback:ping><description><![CDATA[
		<font color="#0000ff" face="Courier New" size="4">   静态数据成员很像是全局变量，但static数据成员有类作用域，静态成员可以是public,private或protected.<br />   静态数据成员在文件范围内<font color="#ff3300">必须进行一次初始化</font>。类的public静态成员可以通过类的任何对象访问，也可以用二元作用域分辨符通过类名进行访问。<font color="#ff3300">类的private和protected 静态成员必须通过类的public成员函数或类的友元访问</font>。<font color="#ff3300">即使类没有对象，但仍然有静态成员。类没有对象时，要想访问public静态类成员，只需在成员数据名前加上类名和二元作用域分辨符(::)</font>.<font color="#ff3300">要在类没有对象时访问private或protected 静态类成员，则需要提供一个public静态成员函数，并在调用函数时在函数名前面加上类名和二元作用域分辨符。</font><br /><br />#File Test.h<br />#ifndef TEST_H<br />#define TEST_H<br /><br />class Test<br />{<br />   public:<br />         Test( const char * , const char * );<br />         ~Test();<br />         const char *GetFstString() const;<br />         const char *GetLstString() const;<br /><br />         <font color="#ff3300">static int GetCount();</font><br /><br />  private:<br />         char * strFst;<br />         char * strLst;<br /><br />         <font color="#ff3300">static int count;  </font><br /><br />};<br /><br /><br />#endif<br />---------------------------------------------------------------------------------<br />#File Test.cpp<br />#include &lt;iostream&gt;<br /><br />using std::cout;<br />using std::endl;<br /><br />#include &lt;cstring&gt;<br />#include &lt;cassert&gt;<br />#include "Test.h"<br /><br /><font color="#ff3300">int Test::count = 0;<br /><br />int Test::GetCount() { return count ; }</font><br /><br />Test::Test( const char * sFst, const char * sLst )<br />{<br />   strFst = new char[ strlen( sFst ) + 1 ];<br />   assert( strFst != 0 );<br />   strcpy( strFst, sFst );<br />  <br />   strLst = new char[ strlen( sLst ) + 1 ];<br />   assert( strLst != 0 );<br />   strcpy( strLst, sLst );  <br /><br />   count++; // inc static count<br /><br />   cout &lt;&lt; " Test cons for " &lt;&lt; strFst<br />        &lt;&lt; "  " &lt;&lt; strLst &lt;&lt; " called. " &lt;&lt; endl;<br />}<br /> <br />Test::~Test()<br />{<br />   cout &lt;&lt; " ~Test() called for " &lt;&lt; strFst<br />        &lt;&lt; " " &lt;&lt; strLst &lt;&lt; endl;<br />   delete [] strFst;<br />   delete [] strLst;<br />   count--;<br />}<br /><br />const char * Test::GetFstString() const<br />{<br />    return strFst;<br />}<br /><br />const char * Test::GetLstString() const<br />{<br />    return strLst;<br />}<br /><br />--------------------------------------------------------------------------------<br />#File: main.cpp<br />#include &lt;iostream&gt;<br /><br />using std::cout;<br />using std::endl;<br /><br />#include "Test.h"<br /><br />int main()<br />{<br />   cout &lt;&lt; "before cons is "<br />        &lt;&lt; Test::GetCount() &lt;&lt; endl; // use class name<br /><br />   Test *pTest1 = new Test( "FstTest1", "LstTest1" );<br />   Test *pTest2 = new Test( "FstTest2", "LstTest2" );<br /><br />   cout &lt;&lt; "after cons is "<br />        &lt;&lt; pTest1-&gt;GetCount();  //using instan<br /><br />   cout &lt;&lt; "\n\nTest1: "<br />        &lt;&lt; pTest1-&gt;GetFstString()<br />        &lt;&lt; " " &lt;&lt; pTest1-&gt;GetLstString()<br />        &lt;&lt; "\nTest2:"<br />        &lt;&lt; pTest2-&gt;GetFstString()<br />        &lt;&lt; " " &lt;&lt; pTest2-&gt;GetLstString() &lt;&lt; "\n\n" &lt;&lt; endl;<br /><br />   delete pTest1;<br />   pTest1 = 0;<br />   delete pTest2;<br />   pTest2 = 0;<br /><br />   cout &lt;&lt; "num after deletion is "<br />        &lt;&lt; Test::GetCount() &lt;&lt; endl;<br /><br />   return 0;<br />       <br />}<br />-------------------------------------------------------------------------------------------<br /><br />Result:<br />before cons is 0<br /> Test cons for FstTest1  LstTest1 called.<br /> Test cons for FstTest2  LstTest2 called.<br />after cons is 2<br /><br />Test1: FstTest1 LstTest1<br />Test2:FstTest2 LstTest2<br /><br /><br /> ~Test() called for FstTest1 LstTest1<br /> ~Test() called for FstTest2 LstTest2<br />num after deletion is 0<br /><br />   Test类在没有对象时，仍然可以引用count成员，但是只能通过调用静态成员函数GetCount()完成.<br />   <font color="#ff3300">没有实例化的对象，一定是用类名调用Test::GetCount(),如果有实例化的对象，则可以用pTest1-&gt;GetCount()<br />调用。我们公司明确规定，所有静态成员函数只能调用类名句柄，不能调用对象句柄，我觉得这样很好。</font><br /><br />   还有一点，如果成员函数不访问非静态数据成员和成员函数，可以将成员函数声明为静态，<font color="#ff3300">与非静态成员函数不同的是，静态成员函数没有this指针，因为静态类数据成员和成员函数是独立于类对象而存才的。</font><br /> <br />   关于断言(assert) , assert类宏在cassert头文件中定义。用于测试条件值，注意assert不运行任何析构函数即可中止程序执行.<font color="#ff3300"> assert不一定要在调试完成后删除，只需在程序文件开头(通常可以在编译器选项中指定)插入语句<br />#define NDEBUG</font><br /><br /></font>
<img src ="http://www.blogjava.net/softgamer/aggbug/99097.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/softgamer/" target="_blank">softgamer</a> 2007-02-10 09:12 <a href="http://www.blogjava.net/softgamer/archive/2007/02/10/99097.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++体会 -- 初始化类的常量数据成员</title><link>http://www.blogjava.net/softgamer/archive/2007/02/09/99071.html</link><dc:creator>softgamer</dc:creator><author>softgamer</author><pubDate>Fri, 09 Feb 2007 14:19:00 GMT</pubDate><guid>http://www.blogjava.net/softgamer/archive/2007/02/09/99071.html</guid><wfw:comment>http://www.blogjava.net/softgamer/comments/99071.html</wfw:comment><comments>http://www.blogjava.net/softgamer/archive/2007/02/09/99071.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/softgamer/comments/commentRss/99071.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/softgamer/services/trackbacks/99071.html</trackback:ping><description><![CDATA[
		<font face="Courier New" size="4">如果你想初始化一个类中的常量数据成员，只能用一种方法，在类的构造函数后加一个":",然后初始化那些常量数据成员，<br />以逗号分割。<br /><br />#include &lt;iostream&gt;<br /><br />using std::cout;<br />using std::endl;<br /><br />class Test <br />{<br />  public:<br />    Test(int i = 0, int j = 1 );<br />    void addon() { count += idx; }<br />    void print() const;<br />  private:<br />    int count;<br />    const int idx;<br />    const int idy;<br />};<br /><br />Test::Test( int i, int j ) <br />  <b><font color="#ff3300">:idx( j, i ), idy( j, j )</font></b><br />{<br />   count = j;<br />}<br /><br />void Test::print() const<br />{<br />   cout &lt;&lt; "count= " &lt;&lt; count <br />        &lt;&lt;", idx = " &lt;&lt; idx<br />        &lt;&lt;", idy = " &lt;&lt; idy<br />        &lt;&lt; endl;<br />}<br /><br />int main()<br />{<br />    Test Test1( 20, 7 );<br />    cout &lt;&lt; "Before doing addon: ";<br />    Test1.print();<br />    for ( int k = 0; k &lt; 3; k++ )<br />    {<br />       Test1.addon();<br />       cout &lt;&lt; "After addon " &lt;&lt; k + 1 &lt;&lt; ":";<br />       Test1.print();<br />    } <br />    return 0;<br />}<br /><br />result:<br /><font color="#0000ff">Before doing addon: count= 7, idx = 20, idy = 7<br />After addon 1:count= 27, idx = 20, idy = 7<br />After addon 2:count= 47, idx = 20, idy = 7<br />After addon 3:count= 67, idx = 20, idy = 7</font><br /><br /></font>
<img src ="http://www.blogjava.net/softgamer/aggbug/99071.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/softgamer/" target="_blank">softgamer</a> 2007-02-09 22:19 <a href="http://www.blogjava.net/softgamer/archive/2007/02/09/99071.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>向诸葛亮老师学习十堂课</title><link>http://www.blogjava.net/softgamer/archive/2007/02/07/98512.html</link><dc:creator>softgamer</dc:creator><author>softgamer</author><pubDate>Wed, 07 Feb 2007 02:37:00 GMT</pubDate><guid>http://www.blogjava.net/softgamer/archive/2007/02/07/98512.html</guid><wfw:comment>http://www.blogjava.net/softgamer/comments/98512.html</wfw:comment><comments>http://www.blogjava.net/softgamer/archive/2007/02/07/98512.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/softgamer/comments/commentRss/98512.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/softgamer/services/trackbacks/98512.html</trackback:ping><description><![CDATA[
		<table style="table-layout: fixed;" border="0" cellpadding="0" cellspacing="0" height="868" width="886">
				<tbody>
						<tr>
								<td>
										<font face="Courier New" size="4">
												<span class="oblog_text">
														<br />     也发一篇灌水文章，它对我帮助很大。不是我写的，是朋友发给我的。我也加了自己的一些理解<br /><br /><span style="font-family: 宋体;">     诸葛亮</span><span style="font-family: Times New Roman;" lang="EN-US">54</span><span style="font-family: 宋体;">岁时写给他</span><span style="font-family: Times New Roman;" lang="EN-US">8</span><span style="font-family: 宋体;">岁
儿子诸葛瞻的《诫子书》，只用了短短八十六字，但是对于为学做人有精简而且具体的忠告。一千八百多年前的智慧，在今天的科技时代，仍然有非常好的参考价
值。以前听人说：“真正的智慧，可以超越时空，历久常新。”初听不知所以，现在觉得所言甚是。让我们一起<st1:personname w:st="on" productid="向诸葛亮">向诸葛亮</st1:personname>老师学习十堂课，在变局中安身立命，在逆境中找到力量。</span><span lang="EN-US"><br /></span><span style="font-family: 宋体;">　　<font color="#0000ff">《诫子书》</font></span><font color="#0000ff"><span lang="EN-US"><br /></span><span style="font-family: 宋体;">　　夫君子之行，靜以修身，儉以養德；非澹泊無以明志，非寧靜無以致遠。夫學須靜也，才須學也；非學無以廣才，非志無以成學。怠慢則不能勵精，險躁則不能冶性。年與時馳，意與歲去，遂成枯落，多不接世。悲守窮廬，將復何及！<br /></span></font><span style="font-family: Times New Roman;" lang="EN-US"><font color="#0000ff"> </font><br /></span><span style="font-family: 宋体;">　<span style="color: red;">　第一课：宁静的力量</span></span><span style="color: red;" lang="EN-US"><br /></span><span style="font-family: 宋体;">　　“静以修身”、“非宁静无以致远”、“学须静也”。诸葛亮忠告孩子宁静才能够修养身心，静思反省。不能够静下来，则不可以有效的计划未来，而且学习的首要条件，就是有宁静的环境。现代人大多数终日忙碌，你是否应在忙乱中静下来，反思人生方向？<br />     </span><span style="font-family: 宋体;"><br />  　<span style="color: red;">第二课：节俭的力量</span></span><span style="color: red;" lang="EN-US"><br /></span><span style="font-family: 宋体;">　　“俭以养德”。诸葛亮忠告孩子要节俭，以培养自己的德行。审慎理财，量入为出，不但可以摆脱负债的困扰，更可以过着纪律的简朴生活，不会成为物质的奴隶。在鼓励消费的文明社会，你有没有想过节俭的好处呢？<br /><br /></span><span lang="EN-US"></span><span style="font-family: 宋体;">　　<span style="color: red;">第三课：计划的力量</span></span><span style="color: red;" lang="EN-US"><br /></span><span style="font-family: 宋体;">　　“非澹泊无以明志”、“非宁静无以致远”。诸葛亮忠告孩子要计划人生，不要事事讲求名利，才能够了解自己的志向，要静下来，才能够细心计划将来。面对未来，你有理想吗？你有使命感吗？你有自己的价值观吗？<br /><br /></span><span lang="EN-US"></span><span style="font-family: 宋体;">　　<span style="color: red;">第四课：学习的力量</span></span><span style="color: red;" lang="EN-US"><br /></span><span style="font-family: 宋体;">　　“夫学须静也”、“才须学也”。诸葛亮忠告孩子宁静的环境对学习大有帮助，当然配合专注的平静心境，就更加事半功倍。诸葛亮不是天才论的信徒，他相信才能是学习的结果。你是没有全心全力的学习？你是否相信努力才有成就呢？<br /><br /></span><span lang="EN-US"></span><span style="font-family: 宋体;">　<span style="color: red;">　第五课：增值的力量</span></span><span style="color: red;" lang="EN-US"><br /></span><span style="font-family: 宋体;">　　“非学无以广才”、“非志无以成学”。诸葛亮忠告孩子要增值先要立志，不愿意努力学习，就不能够增加自己的才干。但学习的过程中，决心和毅力非常重要，因为缺乏了意志力，就会半途而废。你有没有想过，一鼓作气的人多，坚持到底的人少的道理呢？<br /><br /></span><span lang="EN-US"></span><span style="font-family: 宋体;">　<span style="color: red;">　第六课：速度的力量</span></span><span style="color: red;" lang="EN-US"><br /></span><span style="font-family: 宋体;">　　“怠慢则不能励精”。诸葛亮忠告孩子凡事拖延就不能够快速的掌握要点。计算机时代是十倍速的时代，样样事情讲求效率，想不到一千八百多年前的智慧，也一样不谋而合。快人一步，理想就能实现。你有没有想过，有更多时间去修正及改善，以达成你的人生目标呢？<br /><br /></span><span lang="EN-US"></span><span style="font-family: 宋体;">　　<span style="color: red;">第七课：性格的力量</span></span><span lang="EN-US"><br /></span><span style="font-family: 宋体;">　　“险躁则不能冶性”。诸葛亮忠告孩子太过急躁就不能够陶冶性情。心理学家说：“思想影响行为，行为影响习惯，习惯影响性格，性格影响命运。”诸葛亮明白生命中要作出种种平衡，要励精，也要冶性。你要提升自己性格的品质吗？<br /><br /></span><span lang="EN-US"></span><span style="font-family: 宋体;">　　<span style="color: red;">第八课：时间的力量</span></span><span style="color: red;" lang="EN-US"><br /></span><span style="font-family: 宋体;">　　“年与时驰”、“意与岁去”。诸葛亮忠告孩子时光飞逝，意志力又会随着时间消磨，少壮不努力，老大徒伤悲，时间管理是个现代人的观念，细心想一想，时间不可以被管理，每天二十四小时，不多也不少，惟有管理自己，善用每分每秒。请你想一想，你有蹉跎岁月吗？<br /><br /></span><span lang="EN-US"></span><span style="font-family: 宋体;">　　<span style="color: red;">第九课：想象的力量</span></span><span style="color: red;" lang="EN-US"><br /></span><span style="font-family: 宋体;">　　“遂成枯落”、“多不接世”、“悲守穷庐”、“将复何及”。诸葛亮忠告孩子时光飞逝，当自己变得和世界脱节，才悲叹蹉跎岁月，也于事无补。要懂得居安思危，才能够临危不乱。想象力比知识更有力量。你有没有从大处着想，小处着手，脚踏实地，规划自己的人生呢？</span><span lang="EN-US"><br /></span><span style="font-family: 宋体;"><br />　<span style="color: red;">　第十课：精简的力量</span></span><span style="color: red;" lang="EN-US"><br /></span><span style="font-family: 宋体;">　　以上诸葛亮写给儿子的一封信，只用了短短八十六字，精简地传递了具体的讯息。我相信精简的表达源于清晰的思想，长篇大论的内容，容易令人生厌，精简沟通更有效果。你懂得言之有物地精简沟通吗？</span><span lang="EN-US"><br /></span><span style="font-family: 宋体;"><br />　　从以上的十堂课之中，你能够找到一点启发吗？请你百忙之中静下来，用下面的题目向你的人生提问，在改变中不断改善。</span><span lang="EN-US"><br /></span><span style="font-family: 宋体;">　　<font color="#ff3300">不要问：自己得到些什么？应该问：自己付出过什么？</font></span><font color="#ff3300"><span lang="EN-US"><br /></span><span style="font-family: 宋体;">　　不要问：自己的地位如何？应该问：自己的心地如何？</span></font></span>
										</font>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/softgamer/aggbug/98512.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/softgamer/" target="_blank">softgamer</a> 2007-02-07 10:37 <a href="http://www.blogjava.net/softgamer/archive/2007/02/07/98512.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>与管理器共舞 --- 世纪弹跳球（第二天）</title><link>http://www.blogjava.net/softgamer/archive/2007/02/06/98438.html</link><dc:creator>softgamer</dc:creator><author>softgamer</author><pubDate>Tue, 06 Feb 2007 14:15:00 GMT</pubDate><guid>http://www.blogjava.net/softgamer/archive/2007/02/06/98438.html</guid><wfw:comment>http://www.blogjava.net/softgamer/comments/98438.html</wfw:comment><comments>http://www.blogjava.net/softgamer/archive/2007/02/06/98438.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/softgamer/comments/commentRss/98438.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/softgamer/services/trackbacks/98438.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<o:p> 构建游戏，其实就是构建你的管理器，你的梦工场。</o:p>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<o:p> 对于这款游戏，我会设计一些管理器类，<br /> 他们分别是： <font color="#ff3300">总管理类</font>，  总更新和渲染<br /></o:p>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<o:p> 它的下面是：</o:p>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<o:p>            <font color="#ff3300">小球管理类</font>，负责小球的更新和渲染</o:p>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<o:p>            <font color="#ff3300">砖块管理类</font>，</o:p>
						</span>
						<span lang="EN-US">
								<o:p>负责</o:p>
						</span>
						<span lang="EN-US">砖块</span>
						<span lang="EN-US">
								<o:p>的更新和渲染</o:p>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<o:p>            <font color="#ff3300">宝物管理类</font>，</o:p>
						</span>
						<span lang="EN-US">
								<o:p>负责</o:p>
						</span>
						<span lang="EN-US">宝物</span>
						<span lang="EN-US">
								<o:p>的更新和渲染</o:p>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<o:p>            </o:p>
						</span>
						<span lang="EN-US">
								<o:p>。。。。。。。。。<br /></o:p>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<o:p> </o:p>
						</span>
				</font>
		</p>
		<font color="#0000ff" face="Courier New" size="4">  当总管理类更新或渲染时，依次调用各个管理子类的更新或渲染，这样一些具体的东西可以通过同样的管理接口运作，而上层管理者也不用具体的管下级如何运作。</font>
		<font color="#0000ff" face="Courier New" size="4">
				<br /> 其中的一些细节是:<br /> <font color="#ff3300">管理类部分,</font><br />    举一个例子，对于不同类型的砖块来说，他们属于一个砖块</font>
		<font color="#0000ff" face="Courier New" size="4">
				<span style="font-family: 宋体;">基类，并由这个砖块</span>
		</font>
		<font color="#0000ff" face="Courier New" size="4">
				<span style="font-family: 宋体;">基类派生，创建自己的属性，然后再向砖块管理器注册，每增加一种类型的砖块就向管理者注册，当管理器创建此种类型的砖块时，实际就是调用这些子类的接口并创建它们。<br />   这样，我们就隐约看见了一个公司的运作，他们有总管理者，部门管理者和员工，管理者们是核心，</span>
		</font>
		<font color="#0000ff" face="Courier New" size="4">
				<span style="font-family: 宋体;">员工是扩展部分，具体包括各种砖块。<br /> <br />  <font color="#ff3300">资源管理部分，</font><br />    很多朋友愿意把资源一次性载入，好处是，节省运行时间，方便管理等。坏处是程序初始运行时间长，内存消耗太大，很显然，你不可能同时使用所有资源，一些不用的资源，也驻留在内存里，等待调用，对于系统的有效性来讲，实在有些不划算。<br /></span>
		</font>
		<font color="#0000ff" face="Courier New" size="4">
				<span lang="EN-US">
						<span style="">   实时载入资源好处是内存使用很有效，但是频繁读写硬盘，程序运行时间延迟突出，使程序运行有时很不连贯。因此我们要具体情况具体分析，要给资源分级，哪些一次性载入，哪些是实时读写。</span>
				</span>
		</font>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<span style="">    <br /></span>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<span style="">  </span>
						</span>
						<font color="#ff3300">
								<span style="font-family: 宋体;">碰撞检测部分，</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">  目前使用广泛的是使用矩形框来进行粗略的碰撞检测。</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">  几种主要的碰撞:</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">    <font color="#ff3300">小球与平台</font>， 按照角度，速度，加速度定出轨迹运动<br /></span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">    <font color="#ff3300">小球与砖块</font>， 删除砖块（重要的是从内存中删除），</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">    <font color="#ff3300">小球与宝物</font>， </span>
				</font>
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">更改小球的相关属性， </span>
				</font>
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">删除宝物（重要的是从内存中删除）。</span>
				</font>
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">    <font color="#ff3300">小球与墙壁</font>， </span>
				</font>
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">按照角度，速度，加速度定出轨迹运动<br /></span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">    <font color="#ff3300">砖块与砖块</font>， 一些会</span>
				</font>
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">按照角度，速度，加速度定出轨迹运动， 一些不予理会</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">  <br />  碰撞管理只用一个管理器完成，只是要提供不同的接口和容器。   、</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<span style="">  </span>
						</span>
						<span style="font-family: 宋体;">检
测小球与砖块，或宝物发生碰撞时，可能是一对多，也可能是多对多。这个可以在小球管理器内放置一个指针，用来指示当前正在判断的砖块。进行检测时，就把这个指针指向的砖块传递给砖块管理器进行检测。然后改变这个指针。直到指针回到容器头部。</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<o:p> </o:p>
								<span style="">
										<br />
								</span>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<span style=""> <font color="#ff3300"> 属性资源的管理</font></span>
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<span style="">
								</span>
						</span>
						<span style="font-family: 宋体;">   当然全部由外部资源属性文件读取，包括，小球，砖块，宝物，背景等等各个方面的属性。完全静态读取，好处是当物品被创建时，读入属性值，如果已经初始化，就使用属性值。</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<br />
				</font>
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">   目前总体框架，先想到这里。 大体是这样了，具体的还有很多，毕竟管理的资源多，逻辑也相对复杂。</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span style="font-family: 宋体;">
								<br />
						</span>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
				<font color="#0000ff" face="Courier New" size="4">
						<span lang="EN-US">
								<span style="">      <br /></span>
						</span>
				</font>
		</p>
		<font color="#0000ff" face="Courier New" size="4">
		</font>
<img src ="http://www.blogjava.net/softgamer/aggbug/98438.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/softgamer/" target="_blank">softgamer</a> 2007-02-06 22:15 <a href="http://www.blogjava.net/softgamer/archive/2007/02/06/98438.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>今天的工作日志。。。。</title><link>http://www.blogjava.net/softgamer/archive/2007/02/06/98400.html</link><dc:creator>softgamer</dc:creator><author>softgamer</author><pubDate>Tue, 06 Feb 2007 09:59:00 GMT</pubDate><guid>http://www.blogjava.net/softgamer/archive/2007/02/06/98400.html</guid><wfw:comment>http://www.blogjava.net/softgamer/comments/98400.html</wfw:comment><comments>http://www.blogjava.net/softgamer/archive/2007/02/06/98400.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/softgamer/comments/commentRss/98400.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/softgamer/services/trackbacks/98400.html</trackback:ping><description><![CDATA[
		<font color="#0000ff" face="Courier New">   由于工作的关系，从今天起开始编写FPGA驱动程序，
使用的是NIOSII开发环境，以前总觉得FPGA很神秘，今天看来和所有的C环境一样简单，很快就做出了HDLC中断的通讯驱动和SPI驱动程序，真的要
感谢前辈们辛苦的工作。当然FPGA硬件的设计方面还是有很多值得回味的，但软件方面实在是很索然无味，希望做FPGA的同志们别骂我，我只是今天才做
FPGA，是新的不能在新的新手了。<br />  <br />   现在开始画弹跳球的UML框架了，不会很复杂，简洁一直是我追求的目标。</font>
<img src ="http://www.blogjava.net/softgamer/aggbug/98400.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/softgamer/" target="_blank">softgamer</a> 2007-02-06 17:59 <a href="http://www.blogjava.net/softgamer/archive/2007/02/06/98400.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>把机械手装上 --- 世纪弹跳球（第一天 续）</title><link>http://www.blogjava.net/softgamer/archive/2007/02/05/98113.html</link><dc:creator>softgamer</dc:creator><author>softgamer</author><pubDate>Mon, 05 Feb 2007 13:27:00 GMT</pubDate><guid>http://www.blogjava.net/softgamer/archive/2007/02/05/98113.html</guid><wfw:comment>http://www.blogjava.net/softgamer/comments/98113.html</wfw:comment><comments>http://www.blogjava.net/softgamer/archive/2007/02/05/98113.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/softgamer/comments/commentRss/98113.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/softgamer/services/trackbacks/98113.html</trackback:ping><description><![CDATA[ <font color="#0000ff" face="Courier New" size="4">  玩了三个多小时游戏，居然没死一次，</font><font color="#0000ff" face="Courier New" size="4">我</font><font color="#0000ff" face="Courier New" size="4">不住的在想，快死吧，可是过了一关，又紧张的玩下去了，看来我的眼睛和手配合的愈来愈快了。<br /> 大致总结了一下这款游戏的内容。<br /> <br />  1。</font><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US"></span><span style="font-family: 宋体;">主体环节（除</span><span lang="EN-US">GUI</span><span style="font-family: 宋体;">等）包括：主角平台，小球（大，小），小球子弹，各种砖块（粗粗统计一下有30多种，其中特殊砖块19种），宝物（18种），各种特效（7种），关卡，关卡中的各种景物（12 种）<br />   2。 主角运动分两部分，平台的运动，小球的运动，平台按照左右平行运动，小球按照碰撞轨迹运动<br />   3。 小球子弹向上运动，没有AI，仅是向上垂直运动，我在考虑是不是加一个宝物，给子弹一些AI能力吧，嘿嘿<br />   4。 看来最累的工作在砖块的运动了，包括： <br />      4。1 静止<br />      4。2 平行运动<br />      4。3 圆周运动<br />      4。4 上下运动<br />      4。5 曲线运动<br />      4。6 贝塞尔大曲线运动<br />      又分个体，整体，混合随机运动<br />  </span></font><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US"><span style=""><br />    5。</span></span><span style="font-family: 宋体;">各种特效，包括粒子系统。我想在特效上应该很漂亮。</span></font><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US"><o:p> </o:p></span></font></p><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US"><span style="">    </span>6</span><span style="font-family: 宋体;">。各种宝物，现在的实现状态是，爆炸产生或碰撞，向下漂浮，然后消失。</span><span lang="EN-US"></span><span style="font-family: 宋体;"></span><span lang="EN-US"></span><span style="font-family: 宋体;"></span></font><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US"><o:p> </o:p></span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US"><span style="">    </span>7</span><span lang="EN-US">。关卡背景<span style=""></span><span style="">，</span></span><span style="font-family: 宋体;">景物不止一层。是多层。这就需要为每一个景物，设置一个层次值。（哪一种游戏都跑不了）</span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US"><o:p> </o:p></span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US"><span style="">    </span>8</span><span style="font-family: 宋体;">。各种需要实现的特效，包括：</span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US"><span style="">      </span></span><span style="font-family: 宋体;">8。1  小球撞击墙壁</span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US">      8。2 小球撞击砖块爆炸</span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US">      8。3 砖块的各种特效</span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US">      8。4 小球飞行的各种特效<br /></span></font></p><font color="#0000ff" face="Courier New" size="4">      8。5 背景随机的动画特效<br /></font><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US"><o:p>  <br /></o:p></span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US"><o:p> </o:p><span style="">    </span></span><span style="font-family: 宋体;">更多的特性现在也许还没有玩到，持续添加中。。。</span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US"><o:p> </o:p></span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US"><o:p>  设计策划上，会用到的方式</o:p></span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><font color="#0000ff" face="Courier New" size="4"><span lang="EN-US"><o:p><br /></o:p></span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt 39pt; text-indent: -18pt;"><font color="#0000ff" face="Courier New" size="4"><span style="" lang="EN-US"><span style="">   1．<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">  </span></span></span><span style="font-family: 宋体;">尽可能多的属性由脚本文件（</span><span lang="EN-US">XML</span><span style="font-family: 宋体;">文件）来实现</span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt 39pt; text-indent: -18pt;"><font color="#0000ff" face="Courier New" size="4"><span style="" lang="EN-US"><span style="">   2．<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">  </span></span></span><span style="font-family: 宋体;">尽可能的实现对象模块化，插件化。</span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt 39pt; text-indent: -18pt;"><font color="#0000ff" face="Courier New" size="4"><span style="" lang="EN-US"><span style="">   3．<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">  </span></span></span><span style="font-family: 宋体;">资源处理上做到脚本化。这是肯定的了，这么多物品，没有脚本管理，那就是灾难。</span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt 39pt; text-indent: -18pt;"><font color="#0000ff" size="4"><span style="font-family: 宋体;"><br /></span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><font color="#0000ff" size="4"><span lang="EN-US"><o:p><font face="Times New Roman"> </font></o:p></span></font></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><o:p><font face="Times New Roman" size="2"><font color="#0000ff" face="Courier New" size="4">      明天继续。。。。。  </font><br /></font></o:p></span></p><br /><img src ="http://www.blogjava.net/softgamer/aggbug/98113.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/softgamer/" target="_blank">softgamer</a> 2007-02-05 21:27 <a href="http://www.blogjava.net/softgamer/archive/2007/02/05/98113.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开始要写新游戏了--- 世纪弹跳球 （第一天）</title><link>http://www.blogjava.net/softgamer/archive/2007/02/05/98023.html</link><dc:creator>softgamer</dc:creator><author>softgamer</author><pubDate>Mon, 05 Feb 2007 07:20:00 GMT</pubDate><guid>http://www.blogjava.net/softgamer/archive/2007/02/05/98023.html</guid><wfw:comment>http://www.blogjava.net/softgamer/comments/98023.html</wfw:comment><comments>http://www.blogjava.net/softgamer/archive/2007/02/05/98023.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/softgamer/comments/commentRss/98023.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/softgamer/services/trackbacks/98023.html</trackback:ping><description><![CDATA[
		<h1>  <font color="#cc6600" face="Courier New" size="4">这几天看朋友玩弹跳球，打算克隆这款游戏，当然还是免费让大家玩。除了继续写一些我使用C++的体会，我一有空就构思一下这款游戏的实现方式，这款游戏比较复杂，比我克隆的任何一款游戏都复杂。</font></h1>
		<h1>
				<font color="#cc6600" face="Courier New" size="4">  相信大家都玩过弹跳球，几年前，我也玩过，不过这次的更刺激，音效更逼真，图像更精美。</font>
		</h1>
		<h1>
				<font color="#cc6600" face="Courier New" size="4">  在设计方面，严格按照软件工程的设计模式开发，后两天打算贴出UML的图，以做规范流程设计。估计时间总共用3周。（没算其他的事情）。</font>
		</h1>
		<h1>
				<font color="#cc6600" face="Courier New" size="4">  公司的工作也很繁重，我写驱动程序写了8年，写3D引擎写了3年，还没看到这样的人（这两天拿到一个芯片，老板要我2周写出芯片的架构，他疯了吧）。</font>
		</h1>
		<h1>
				<font color="#cc6600" face="Courier New" size="4">  </font>
		</h1>
		<h1>
				<font color="#cc6600" face="Courier New" size="4">  我也疯了。</font>
		</h1>
		<h1>
				<font color="#cc6600" face="Courier New" size="4">  </font>
		</h1>
		<h1>
				<font color="#cc6600" face="Courier New" size="4">  前两天，想写个卷轴的游戏，但当我拿到美术资源，太多了，管理起来相当费力。这种多层地图的实时卷动，不是我一个人，一周两周完成的</font>
				<font color="#cc6600" size="4">，还是先放下了，转而写这款游戏。因为它的资源相对简单一些。做事情还是不能太浮躁，以前脑袋一热就动了，结果做到最后很吃力。很多时候想放弃，但又咬牙，告诉自己，至少要把DEMO写完，让它能玩吧！</font>
		</h1>
		<font color="#cc6600">
				<br />
		</font>
		<br />
		<br />
		<table cellpadding="0" cellspacing="0" width="100%">
				<tbody>
						<tr>
								<td width="8">
										<br />
								</td>
								<td align="left" valign="top">
										<a href="http://cn.xihalife.com/games/ricochetlostworlds/index.php">
												<b>
														<br />
												</b>
										</a>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/softgamer/aggbug/98023.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/softgamer/" target="_blank">softgamer</a> 2007-02-05 15:20 <a href="http://www.blogjava.net/softgamer/archive/2007/02/05/98023.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++体会 -- 引用</title><link>http://www.blogjava.net/softgamer/archive/2007/02/05/97990.html</link><dc:creator>softgamer</dc:creator><author>softgamer</author><pubDate>Mon, 05 Feb 2007 06:23:00 GMT</pubDate><guid>http://www.blogjava.net/softgamer/archive/2007/02/05/97990.html</guid><wfw:comment>http://www.blogjava.net/softgamer/comments/97990.html</wfw:comment><comments>http://www.blogjava.net/softgamer/archive/2007/02/05/97990.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/softgamer/comments/commentRss/97990.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/softgamer/services/trackbacks/97990.html</trackback:ping><description><![CDATA[
		<font face="Courier New" size="4">
				<font color="#0000ff" size="5">引用和引用参数</font>
				<br />
				<br />   C++,其实Java 和 c 都一样, 调用函数的方法有两种<br /><font color="#ff1493"><br />   传值调用和引用调用。<br /><br /></font>   参数传值调用时，<font color="#ff3300">会产生该参数值得副本并将副本传递给被调用的函数，对副本的更改不会影响调用者的原始变量值</font>，<br />它的优点显而易见，，缺点是复制数据会花费较长的时间。<br /><br />  引用调用的优点就是避免复制大量的数据，但安全性差，<font color="#ff3300">因为被调用的函数会直接访问并修改调用者的数据，使用是要格外小心</font><br /><br />#include &lt;iostream&gt;<br /><br />using std::cout;<br />using std::endl;<br /><br />int   pbyValue( int );<br />void  pByRef ( int &amp; );<br /><br />int main ()<br />{<br />    int x = 2;<br />    int z = 4;<br /><br />    cout &lt;&lt; "x= " &lt;&lt; x &lt;&lt; " before pByvalue \n"<br />         &lt;&lt;"Getting value by pByValue: "<br />         &lt;&lt; pbyValue( x ) &lt;&lt; endl<br />         &lt;&lt; "x : " &lt;&lt; x &lt;&lt; " Got Value\n" &lt;&lt;endl;<br />    <br />    cout &lt;&lt; "z= " &lt;&lt; z &lt;&lt; " before pBy Ref \n" &lt;&lt; endl;<br />         <br />    pByRef( z );<br />         <br />    cout &lt;&lt; "z : " &lt;&lt; z &lt;&lt; " Got Value\n" &lt;&lt;endl;<br />    <br />    return 0;<br /><br />}<br /><br />int pbyValue ( int a )<br />{<br />    return a *= a;<br />}<br /><br />void pByRef( int &amp;cRef )<br />{<br />    cRef *= cRef;<br />}<br /><br /></font>
<img src ="http://www.blogjava.net/softgamer/aggbug/97990.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/softgamer/" target="_blank">softgamer</a> 2007-02-05 14:23 <a href="http://www.blogjava.net/softgamer/archive/2007/02/05/97990.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++体会 -- 内联函数</title><link>http://www.blogjava.net/softgamer/archive/2007/02/05/97951.html</link><dc:creator>softgamer</dc:creator><author>softgamer</author><pubDate>Mon, 05 Feb 2007 03:40:00 GMT</pubDate><guid>http://www.blogjava.net/softgamer/archive/2007/02/05/97951.html</guid><wfw:comment>http://www.blogjava.net/softgamer/comments/97951.html</wfw:comment><comments>http://www.blogjava.net/softgamer/archive/2007/02/05/97951.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/softgamer/comments/commentRss/97951.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/softgamer/services/trackbacks/97951.html</trackback:ping><description><![CDATA[
		<font face="Courier New">
				<font color="#0000ff" size="5">内联函数</font>
				<br />
				<br />   C++ 提供了内联函数（inline functions ），主要用于减少函数所使用的开销，尤其对于小型函数<br /><br />   函数返回类型之前的限定符inline 让编译器在适当的程序部分生成函数的副本，以避免函数调用，这样使程序中插入多个函数<br />代码的副本，令程序增大。而不是一个函数的副本（每次调用函数时，控制都会传到函数中）。<br /><br />   对内联函数的更改都需要重新编译该函数的所有调用者，这会大大影响程序的维护，所以inline用于小型的，使用频繁的函数最好.<br />而且</font>
		<font face="Courier New">内联函数</font>
		<font face="Courier New">也使程序的执行时间减少，但在编译时增大了程序的长度，当然也不绝对，有时也会减小程序长度，特别是</font>
		<font face="Courier New">内联函数是非常小的函数时。<br /><br /></font>
		<font face="Courier New">
				<br />   题外话， <font color="#ff3300">使用const的目的在函数中只是保护原始实参的副本，而不是原始实参本身。</font><br /><br /><br /><br /><br /></font>
<img src ="http://www.blogjava.net/softgamer/aggbug/97951.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/softgamer/" target="_blank">softgamer</a> 2007-02-05 11:40 <a href="http://www.blogjava.net/softgamer/archive/2007/02/05/97951.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++体会 -- 存储类</title><link>http://www.blogjava.net/softgamer/archive/2007/02/05/97943.html</link><dc:creator>softgamer</dc:creator><author>softgamer</author><pubDate>Mon, 05 Feb 2007 03:04:00 GMT</pubDate><guid>http://www.blogjava.net/softgamer/archive/2007/02/05/97943.html</guid><wfw:comment>http://www.blogjava.net/softgamer/comments/97943.html</wfw:comment><comments>http://www.blogjava.net/softgamer/archive/2007/02/05/97943.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/softgamer/comments/commentRss/97943.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/softgamer/services/trackbacks/97943.html</trackback:ping><description><![CDATA[
		<font face="Courier New" size="4">
				<font color="#0000ff" size="5">存储类</font>
				<br />  在C++中有5个存储类说明符，<font color="#ff0000">auto,register, extern mutable 和static.</font><br />存储类说明符可以分为两个存储类，"自动存储类"和"静态存储类"<br /><br />  auto和register用于声明自动存储类的变量，此类变量是在进入声明的块时创建的，<font color="#ff3300">它们只存在与块被激活的期间</font>，当程序执行退出块时，这些变量就会被删除。<br /><br /><font color="#ff3300">  只有变量可以作为自动存储类，函数的局部变量和参数通常属于自动存储类</font>。<br /><br />     auto double x, y;<br /><font color="#ff3300"><br />   注意：用自动存储可以节省内存，我做程序的宗旨就是简单有效的是使用内存，为了能有效的使用内存，<br />我都是尽量有效的规划我的资源.</font><br /><br />   对比auto,<font color="#ff3300">register 只能随局部变量和函数参数一起使用</font>。<br /><br />     register int x = 1;<br />   <br />    关键字extern 和 static 是用于声明变量和静态存储类函数的说明符，它们存在于程序开始执行时，程序在开始时就为它们分配了初始化的存储空间，<font color="#ff3300">但并不意味着这些标识符可用于整个程序中，其还有作用域的约束 。 </font>  <br />  </font>
		<br />
<img src ="http://www.blogjava.net/softgamer/aggbug/97943.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/softgamer/" target="_blank">softgamer</a> 2007-02-05 11:04 <a href="http://www.blogjava.net/softgamer/archive/2007/02/05/97943.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>