锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲va中文字幕无码久久,麻豆一区二区99久久久久,中文字幕乱码久久午夜http://www.shnenglu.com/richardzeng/VC++ 鏂歸潰緙栫▼鏂囩珷zh-cnWed, 07 May 2025 00:50:25 GMTWed, 07 May 2025 00:50:25 GMT60Windows GDI CDC 浣跨敤闂http://www.shnenglu.com/richardzeng/archive/2006/07/16/10112.htmlBeginning to 緙栫▼Beginning to 緙栫▼Sat, 15 Jul 2006 19:06:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/07/16/10112.htmlhttp://www.shnenglu.com/richardzeng/comments/10112.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/07/16/10112.html#Feedback2http://www.shnenglu.com/richardzeng/comments/commentRss/10112.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/10112.html鏈榪戝湪瀛︿範Hoops聽聽 鐨勫紩鎿庯紙http://www.hoops3d.com )

妯℃嫙瀹冪殑MVO鏋舵瀯錛屼笉榪囨病鏈夊師浠g爜錛屾墍浠ュ緢闅綼
璁捐浜嗕竴涓氦浜掔粯鍥懼熀鏈被錛?br />浣嗘槸榪樻湁閿欒錛岄紶鏍囧乏閿偣鍑諱袱涓?br />聽winGDI.cpp涓嚭閿欍?br />璇峰ぇ铏炬寚鏁欎竴浜屻?br />鎴戝凡緇忓湪榪欎釜闂涓婅姳浜嗗緢澶氱殑蹇冩濄?br />鍏朵腑鏈閲嶈鐨勫氨鏄疨ainter鎶借薄綾葷殑璁捐
浠栫殑瀛愮被QBufferDC緇ф壙CDC
鑰孲GView鍖呭惈Painter鎸囬拡錛屾柟渚垮湪SGView ::drawEntity璋冪敤銆?br />


SGObject - 瀵硅薄鐨勬娊璞$被錛屼篃灝辨槸鍑犱綍瀵硅薄
SGModel- 璐熻矗瀵硅薄綆$悊錛屾病鏈夊疄鐜版墍鏈夌殑鍔熻兘錛屽噯澶囩敤SceneTree鏉ュ疄鐜?br />SGView - 璐熻矗鏄劇ずSGModel涓殑鏁版嵁錛屽叧閿殑鍑芥暟
void SGView::drawEntity(SGObject* pObj)
{
聽聽聽pObj->draw(m_pPainter,this)
}

Painter - 灝佽CDC鐨勫姛鑳?瑙佷唬鐮?br />
鍦–SGView鍒涘緩鐨勬椂鍊欏垱寤篜ainter瀵硅薄
寰堝彲鑳借繖閲屾湁闂錛侊紒錛侊紒錛?br />void CSGView::OnCreate(..)
{
聽聽聽聽聽CDC*聽pDC =聽GetDC();
聽聽聽Painter* painter = new QBufferDC(pDC);
聽聽聽m_pSGView->setPainter(painter);
}


MFC 鐩稿叧鐨凞ocument/View鏋舵瀯
CSGDocument - 綆$悊SGModel

CSGView - 鍜孲GView寤虹珛鑱旂郴錛屽茍璐熻矗鎶妛indows鐨勬秷鎭彂閫佺粰SGView
瑙佸師浠g爜

SGActionManager - 璐熻矗宸ュ叿鐨勭鐞?br />SGBaseAction - 宸ュ叿鐨勬娊璞″熀綾?br />SGActionDrawLine - 緇樺埗鐩寸嚎鐨勫伐鍏?br />


婧愪唬鐮佽繛鎺ワ細
http://www.shnenglu.com/Files/richardzeng/MVOTest.rar



Beginning to 緙栫▼ 2006-07-16 03:06 鍙戣〃璇勮
]]>
璧勬簮鍜岃祫婧愮鐞嗙被鐨勮璁¢棶棰?/title><link>http://www.shnenglu.com/richardzeng/archive/2006/05/27/7741.html</link><dc:creator>Beginning to 緙栫▼</dc:creator><author>Beginning to 緙栫▼</author><pubDate>Sat, 27 May 2006 14:19:00 GMT</pubDate><guid>http://www.shnenglu.com/richardzeng/archive/2006/05/27/7741.html</guid><wfw:comment>http://www.shnenglu.com/richardzeng/comments/7741.html</wfw:comment><comments>http://www.shnenglu.com/richardzeng/archive/2006/05/27/7741.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/richardzeng/comments/commentRss/7741.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/richardzeng/services/trackbacks/7741.html</trackback:ping><description><![CDATA[ <p> <br />鎴戣璁捐鐨勫簲鐢ㄧ▼搴忓叾涓殑涓涓ā鍧楀氨鏄皝瑁?windows GDI涓殑鐢葷瑪錛岀敾鍒風瓑GDI object<br />鎶奊DI object 鍐嶅皝瑁呮垚resource錛屼互瀹炵幇澶氱鏍峰紡澶氱嚎鏉$殑鐢葷瑪鍙婄敾鍒瘋祫婧?/p> <p>鐢葷瑪錛岀敾鍒風瓑璧勬簮緇ф壙resource<br />涓轟簡閬垮厤鍙戠敓璧勬簮娉勯湶鍜宺esource鐨勭鐞?br />璁捐ResourceManager綾伙紝璐熻矗璧勬簮鐨勫垱寤猴紝鍔犺澆鍜屽嵏杞戒互鍙婂垹闄?/p> <p>涓や釜鎶借薄綾?Resource 鍜?ResourceManager<br />涓や釜鍏蜂綋綾?ConcreateResource 鍜?ConcreateResourceManager<br />鍒嗗埆媧劇敓浜庝笂闈㈢殑鎶借薄綾?/p> <p>浠ヤ笂璁捐鏄湅浜?OGRE 娓告垙寮曟搸鐨勮祫婧愮鐞嗛儴鍒嗭紝<br />瀵瑰畠鐨勮祫婧愮鐞嗙被ResourceManager涓嶆槸寰堢悊瑙?/p> <p>resource 媧劇敓浜唒en,brush絳夌被<br />pen綾誨彲浠ユ潵鑷枃浠訛紝涔熷彲浠ヨ嚜宸卞垱寤篠ubPen 娣誨姞鍒癝ubPenList涓?/p> <p>ResourceManager 璐熻矗鍒涘緩璧勬簮Resource<br />1. 濡傛灉鎴戝湪鎶借薄鐨?ResourceManager 澹版槑 createRes鍑芥暟錛屽茍榪斿洖鍩虹被resource<br />鍔垮繀浼氳寮哄埗杞崲錛岀劧鍚庡湪鐢ㄥ埌鍏蜂綋鐨凴esource鏃跺欏張瑕佽漿鎹㈠洖鏉?/p> <p>2. 濡傛灉鎴戝湪鍏蜂綋綾?ConcreateResourceManager 澹版槑 createConcreateRes鍑芥暟<br />閭d箞灝辯櫧璐逛簡鎴戝簲鐢ㄨ璁℃ā寮忚璁¤繖涔堝綾?/p> <p> <br />// abstract class for resource<br />class Resource{<br />public:<br />聽// standard constructor<br />聽 Resource(const string& name, const string& group)<br />聽:mName(name),mGroup(group){}<br />聽 ~Resource(){}<br />protected:<br />聽// prevent default construct<br />聽 Resource():mName(""),mGroup(""){}<br />聽 string mName;<br />聽 string mGroup;<br />聽 static unsigned long mHandle;<br />};</p> <p>// subclass of resource<br />// concreateResource such as PEN<br />class Pen:<br />聽public Resource{<br />聽Pen(const string& name, const string& group)<br />聽聽:Resource(name,group){}<br />聽聽~Pen(){}<br /><br />聽 void loadfromFile(string& filename);<br /><br />// add聽into vector<br />聽 void addSubPen(SubPen* sub){<br />聽聽聽聽 mSubPenList.push_back(sub);<br />}<br />public:<br />typedef std::vector<SubPen> SubPenList;<br />SubPenList mSubPenList;</p> <p>};<br />class <br />// abstract class for resource manager<br />class ResourceManager{<br />public:<br />聽 ResourceManager(){}<br />聽 ~ResourceManager(){}<br />public:<br />// here , I cannot understand OGRE degsin<br />聽 Resource* createRes(const string& name,const string& group);<br />聽// resource map <br />銆typedef std::map<string,Resource*> ResourceMap;<br />聽聽 ResourceMap mResources;</p> <p>};</p> <p>// subclass ResourceManager<br />class ConcreateResourceManager<br />聽:public ResourceManager<br />{<br />聽ConcreateResourceManager(){}<br />聽~ConcreateResourceManager(){}</p> <p>聽聽聽聽聽 // how can design here!!<br />聽聽聽聽聽聽 Pen* createPen(const string& name,const string& group){}<br />}</p> <p>聽</p> <img src ="http://www.shnenglu.com/richardzeng/aggbug/7741.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/richardzeng/" target="_blank">Beginning to 緙栫▼</a> 2006-05-27 22:19 <a href="http://www.shnenglu.com/richardzeng/archive/2006/05/27/7741.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>MFC 瀹瑰櫒綾誨璞$殑搴忓垪鍖栭棶棰?/title><link>http://www.shnenglu.com/richardzeng/archive/2006/05/15/7223.html</link><dc:creator>Beginning to 緙栫▼</dc:creator><author>Beginning to 緙栫▼</author><pubDate>Mon, 15 May 2006 14:14:00 GMT</pubDate><guid>http://www.shnenglu.com/richardzeng/archive/2006/05/15/7223.html</guid><wfw:comment>http://www.shnenglu.com/richardzeng/comments/7223.html</wfw:comment><comments>http://www.shnenglu.com/richardzeng/archive/2006/05/15/7223.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/richardzeng/comments/commentRss/7223.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/richardzeng/services/trackbacks/7223.html</trackback:ping><description><![CDATA[ <p>璁捐涓涓▼搴忓疄鐜板浣曚繚瀛樹竴緋誨垪鐨凷Pen錛堝涓嬪畾涔夛級瀵硅薄鍒版枃浠訛紝鎴栬呯О涓哄簭鍒楀寲SPen collection<br /><br />SPenCollection::Load鍜?Save鍑芥暟瀹炵幇鎵撳紑鐢葷瑪鏂囦歡錛堟枃浠剁殑鍐呭鏄竴緋誨垪SPen瀵硅薄錛?br />// for example<br />聽SPenCollection pc;<br />聽pc.Load("C:\\1.pen");<br /><br />鎴戜笉鐭ラ亾濡備綍搴忓垪鍖栧鍣ㄧ被瀵硅薄錛岃澶ц櫨鎸囨暀銆?br /><br /><br /><br />// SPen object<br />class SPen : public CObject<br />{<br />聽DECLARE_SERIAL(SPen)<br />public:<br />聽SPen();<br />聽virtual ~SPen();</p> <p>public:<br />聽int lineStyle;<br />聽int lineWidth;<br />聽COLORREF lineColor;<br />public:<br />聽virtual void Serialize(CArchive& ar);<br />};<br /><br /><br />// SPen.cpp : 瀹炵幇鏂囦歡<br />//</p> <p>#include "stdafx.h"<br />#include "ArchiveTest.h"<br />#include "SPen.h"</p> <p> <br />// SPen<br />IMPLEMENT_SERIAL(SPen,CObject,1)</p> <p>SPen::SPen()<br />{<br />聽lineStyle = PS_SOLID;<br />聽lineWidth = 2;<br />聽lineColor = RGB(255,0,0);<br />}</p> <p>SPen::~SPen()<br />{<br />}</p> <p> <br />// SPen 鎴愬憳鍑芥暟</p> <p>void SPen::Serialize(CArchive& ar)<br />{<br />聽if (ar.IsStoring())<br />聽{聽// storing code<br />聽聽ar<<lineStyle;<br />聽聽ar<<lineWidth;<br />聽聽ar<<lineColor;<br />聽}<br />聽else<br />聽{聽// loading code<br />聽聽ar>>lineStyle;<br />聽聽ar>>lineWidth;<br />聽聽ar>>lineColor;<br />聽}<br />}<br /><br /><br />///////////////////////////////////////<br />// 鍏抽敭鏄瀹炵幇濡備綍淇濆瓨涓緋誨垪鐨凷Pen瀵硅薄<br />// load 鍜?save鍑芥暟瀹炵幇鎵撳紑鐢葷瑪鏂囦歡錛堟枃浠剁殑鍐呭鏄竴緋誨垪SPen瀵硅薄錛?br />// for example<br />/** SPenCollection pc;<br />聽聽聽pc.Load("C:\\1.pen");<br />聽**/<br /><br />#pragma once</p> <p>// SPenCollection 鍛戒護鐩爣</p> <p>#include "SPen.h"<br />#include <afxtempl.h></p> <p>class SPenCollection : public CObject<br />{<br />聽DECLARE_SERIAL(SPenCollection)<br />public:<br />聽SPenCollection();<br />聽virtual ~SPenCollection();<br /><br />聽void AddPen(SPen* pen);</p> <p>聽void Load(CString strFileName);<br />聽void Save(CString strFileName);</p> <p>// CArray 涓嶇煡閬撶敤寰楀涓嶅錛岃澶ц櫨鎸囨暀<br />聽CArray<SPen*,SPen*> pens;<br />};</p> <p> <br />聽</p> <img src ="http://www.shnenglu.com/richardzeng/aggbug/7223.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/richardzeng/" target="_blank">Beginning to 緙栫▼</a> 2006-05-15 22:14 <a href="http://www.shnenglu.com/richardzeng/archive/2006/05/15/7223.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>boost serialize 鍜?ostream 闂 http://www.shnenglu.com/richardzeng/archive/2006/05/15/7202.htmlBeginning to 緙栫▼Beginning to 緙栫▼Mon, 15 May 2006 09:26:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/05/15/7202.htmlhttp://www.shnenglu.com/richardzeng/comments/7202.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/05/15/7202.html#Feedback1http://www.shnenglu.com/richardzeng/comments/commentRss/7202.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/7202.html
涓嬮潰鏄疊oost serialization 涓殑demo渚嬪瓙
涓轟綍鍐欎簡serialize 鍑芥暟榪樺啓涓猳stream<<
闃匡紝
鎴戝ostream 涓嶆槸寰堜簡瑙o紝
鎴戠殑鍗拌薄鏄痠ostream 鏄湪鎺у埗鍙伴噷杈撳叆杈撳嚭鐨?/div>
/////////////////////////////////////////////////////////////////////////////
class gps_position
{
聽聽聽 friend std::ostream & operator<<(std::ostream &os, const gps_position &gp);
聽聽聽 friend class boost::serialization::access;
聽聽聽 int degrees;
聽聽聽 int minutes;
聽聽聽 float seconds;
聽聽聽 template<class Archive>
聽聽聽 void serialize(Archive & ar, const unsigned int /* file_version */){
聽聽聽聽聽聽聽 ar & degrees & minutes & seconds;
聽聽聽 }
public:
聽聽聽 // every serializable class needs a constructor
聽聽聽 gps_position(){};
聽聽聽 gps_position(int _d, int _m, float _s) :
聽聽聽聽聽聽聽 degrees(_d), minutes(_m), seconds(_s)
聽聽聽 {}
};
std::ostream & operator<<(std::ostream &os, const gps_position &gp)
{
聽聽聽 return os << ' ' << gp.degrees << (unsigned char)186 << gp.minutes << '\'' << gp.seconds << '"';
}


Beginning to 緙栫▼ 2006-05-15 17:26 鍙戣〃璇勮
]]>
fatal error LNK1104: 鏃犳硶鎵撳紑鏂囦歡鈥渓ibboost_serialization-vc80-mt-gd-1_33_1.lib鈥?/title><link>http://www.shnenglu.com/richardzeng/archive/2006/05/15/7169.html</link><dc:creator>Beginning to 緙栫▼</dc:creator><author>Beginning to 緙栫▼</author><pubDate>Mon, 15 May 2006 02:54:00 GMT</pubDate><guid>http://www.shnenglu.com/richardzeng/archive/2006/05/15/7169.html</guid><wfw:comment>http://www.shnenglu.com/richardzeng/comments/7169.html</wfw:comment><comments>http://www.shnenglu.com/richardzeng/archive/2006/05/15/7169.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.shnenglu.com/richardzeng/comments/commentRss/7169.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/richardzeng/services/trackbacks/7169.html</trackback:ping><description><![CDATA[聽鏈榪戞兂璇曡瘯boost錛屼笅杞戒簡boost 1.33.1<br />鎴戠洰鍓嶄嬌鐢ㄧ殑鏄疺C++2005錛?br />棣栧厛緙栬瘧bjam, 涓嶈繃鐢╞oost 1.33.1 \tools \jam-src 涓嬬殑build.bat涓嶇敤鍙堜粠sf涓婁笅杞戒簡<br />鏈鏂扮殑bjam,鐒跺悗緙栬瘧bjam,鍊掓槸寰堢畝鍗曞緢蹇氨濂界敓鎴恇jam.exe<br /><br />鐒跺悗鎶奲jam鐨勮礬寰勮緗埌path 鐜鍙橀噺涓?br />涓鍒囬兘榪愯姝e父銆?br /><br />鎴戦鍏堝氨緙栬瘧浜哹oost -serialization <br /><br />鍦ㄥ懡浠よ妯″紡涓?br />cd <boost-serialization 鐩綍><br />榪愯bjam "-sTOOLS=vc-8_0"<br /><br />緙栬瘧瀹屾垚鍚庡湪boost 鐩綍涓嬬敓鎴愪簡bin 鐩綍C:\boost_1_33_1\bin\<br />鎴戠紪璇戠殑serialization lib 鏂囦歡鍦ㄨ繖閲?br />C:\boost_1_33_1\bin\boost\libs\serialization\build\boost_serialization.dll\vc-8_0\debug\threading-multi錛屽綋鐒惰繕鏈夊叾瀹冪殑lib,dll<br /><br />棣栧厛璁劇疆vc++鍖呭惈鏂囦歡鐩綍C:\boost_1_33_1\<br />搴撴枃浠惰緗湪C:\boost_1_33_1\bin\boost\libs\serialization\build\boost_serialization.dll\vc-8_0\debug\threading-multi錛?br />錛堣繖涓偗瀹氫笉濂斤紝闅鵑亾鎴戦渶瑕佷竴涓猯ib鏂囦歡灝辮鍦ㄨ繖閲屽姞涓涓礬寰勶紝鍥犱負緙栬瘧鐨刲ib鏂囦歡澶垎鏁o紝娌℃湁闆嗕腑,涓嶇煡閬揷opy鍒頒竴璧鋒槸鍚﹀彲琛?<br /><br />鐒跺悗鎴慶opy boost serialization 涓璬emo浠g爜錛?br />緙栬瘧demo.cpp錛屽氨鎻愮ず fatal error LNK1104: 鏃犳硶鎵撳紑鏂囦歡鈥渓ibboost_serialization-vc80-mt-gd-1_33_1.lib鈥?br /><br />鎴戞兂鏄笉鏄痩ib鏂囦歡鐨勮礬寰勪笉瀵歸樋錛屾妸瑕佺殑libboost_serialization-vc80-mt-gd-1_33_1.lib 鎷瘋礉鍒癈:\boost_1_33_1\libs<br />涓嬭繕鏄笉琛岋紝璁劇疆欏圭洰渚濊禆鏂囦歡涔熶笉琛岋紝<br />鍒板簳鍦╲c++2005 涓庝箞璁劇疆boost鐨勭幆澧冮樋<br /><img src ="http://www.shnenglu.com/richardzeng/aggbug/7169.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/richardzeng/" target="_blank">Beginning to 緙栫▼</a> 2006-05-15 10:54 <a href="http://www.shnenglu.com/richardzeng/archive/2006/05/15/7169.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓嶈兘灝嗏渢his鈥濇寚閽堜粠鈥渃onst Vector3D鈥濊漿鎹負鈥淰ector3D &" 閿欒http://www.shnenglu.com/richardzeng/archive/2006/05/10/6876.htmlBeginning to 緙栫▼Beginning to 緙栫▼Wed, 10 May 2006 06:42:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/05/10/6876.htmlhttp://www.shnenglu.com/richardzeng/comments/6876.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/05/10/6876.html#Feedback2http://www.shnenglu.com/richardzeng/comments/commentRss/6876.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/6876.html鎴戝湪VS2005涓紪璇慥ector3D綾誨嚭鐜?br />error C2662: 鈥淰ector3D::dotP鈥? 涓嶈兘灝嗏渢his鈥濇寚閽堜粠鈥渃onst Vector3D鈥濊漿鎹負鈥淰ector3D &鈥?br />
鎬庝箞鏍鋒敼姝e憿錛岃繖涓被涔熸槸鐪嬪埌鍒漢榪欐牱鍐欑殑錛岀紪璇戜篃娌℃湁閿欒銆?br />
#pragma once

#define M_PI 3.141
#include <math.h>

class Vector3D{
聽Vector3D(){x=y=z=0.0;}
聽Vector3D(double vx, double vy,double vz=0.0){
聽聽x = vx;
聽聽y = vy;
聽聽z = vz;
聽}

聽double magnitude() const{
聽聽return sqrt(x*x+y*y+z*z);
聽}

聽double dotP(const Vector3D& v1,const Vector3D& v2){
聽聽return (v1.x*v2.x+v1.y*v2.y+v1.z*v2.z);
聽}

聽// get the vector angle
聽double angle() const{
聽聽double ret = 0.0;
聽聽double m = magnitude();

聽聽if (m>1.0e-6) {

//聽闂鍑哄湪榪欓噷錛侊紒錛侊紒
// ==============================
聽聽聽double dp = dotP(*this,Vector3D(1.0,0.0));
//==============================

聽聽聽if (dp/m>=1.0) {
聽聽聽聽ret = 0.0;
聽聽聽}
聽聽聽else if (dp/m<-1.0) {
聽聽聽聽ret = M_PI;
聽聽聽}
聽聽聽else {
聽聽聽聽ret = acos( dp / m);
聽聽聽}
聽聽聽if (y<0.0) {
聽聽聽聽ret = 2*M_PI - ret;
聽聽聽}
聽聽}
聽聽return ret;
聽}


protected:
聽double x;
聽double y;
聽double z;

};#pragma once

#define M_PI 3.141
#include <math.h>

class Vector3D{
聽Vector3D(){x=y=z=0.0;}
聽Vector3D(double vx, double vy,double vz=0.0){
聽聽x = vx;
聽聽y = vy;
聽聽z = vz;
聽}

聽double magnitude() const{
聽聽return sqrt(x*x+y*y+z*z);
聽}

聽double dotP(const Vector3D& v1,const Vector3D& v2){
聽聽return (v1.x*v2.x+v1.y*v2.y+v1.z*v2.z);
聽}

聽// get the vector angle
聽double angle() const{
聽聽double ret = 0.0;
聽聽double m = magnitude();

聽聽if (m>1.0e-6) {
聽聽聽double dp = dotP(*this,Vector3D(1.0,0.0));

聽聽聽if (dp/m>=1.0) {
聽聽聽聽ret = 0.0;
聽聽聽}
聽聽聽else if (dp/m<-1.0) {
聽聽聽聽ret = M_PI;
聽聽聽}
聽聽聽else {
聽聽聽聽ret = acos( dp / m);
聽聽聽}
聽聽聽if (y<0.0) {
聽聽聽聽ret = 2*M_PI - ret;
聽聽聽}
聽聽}
聽聽return ret;
聽}


protected:
聽double x;
聽double y;
聽double z;

};



Beginning to 緙栫▼ 2006-05-10 14:42 鍙戣〃璇勮
]]>
C++涓璖ingleton鐨勫疄鐜癧zhuan]http://www.shnenglu.com/richardzeng/archive/2006/04/21/5999.htmlBeginning to 緙栫▼Beginning to 緙栫▼Fri, 21 Apr 2006 01:31:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/04/21/5999.htmlhttp://www.shnenglu.com/richardzeng/comments/5999.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/04/21/5999.html#Feedback0http://www.shnenglu.com/richardzeng/comments/commentRss/5999.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/5999.html
榪欎簺涓滆タ鍦ㄧ綉涓婇兘寰堝浜嗭紝浣嗘槸鎴戣寰椾粬浠殑浣跨敤閮戒笉絎﹀悎鎴戠殑瑕佹眰錛屾墍浠ヨ嚜宸卞姩鎵嬩赴琛h凍椋燂紝鍐欎竴涓嚜宸辮兘鐢ㄧ殑錛屽鐢ㄥ氨濂姐?/div>
#include <iostream>
using namespace std;
//鍗曚歡妯℃澘綾?/div>
template<typename T> class Singleton
{
protected:
聽 static T* m_Instance;
聽 Singleton(){}
聽 virtual~Singleton(){}
public:
聽 //瀹炰緥鐨勮幏寰?/div>
聽 static T* Instance()
聽 {
聽聽聽 if(m_Instance==0)
聽聽聽聽聽 m_Instance=new T;
聽聽聽 return m_Instance;
聽 }
聽 //鍗曚歡綾葷殑閲婃斁
聽 virtual void Release()
聽 {
聽聽聽 if(m_Instance!=0)
聽聽聽 {
聽聽聽聽聽 delete m_Instance;
聽聽聽聽聽 m_Instance=0;
聽聽聽 }
聽 }
};
//鍗曚歡妯℃澘嫻嬭瘯綾?/div>
class Test:public Singleton<Test>
{
聽 friend class Singleton<Test>; //澹版槑涓哄弸鍛橈紝涓嶇劧浼氬嚭閿?/div>
protected:
聽 Test()
聽 {
聽聽聽 a=b=c=0;
聽 }
聽 virtual ~Test(){}
public :
聽 int a;
聽 int b;
聽 int c;
};
//鍒濆鍖栭潤鎬佹垚鍛樸傘傘?/div>
template<> Test*Singleton<Test>::m_Instance=0;
//浠ヤ笅涓烘祴璇曚唬鐮?/div>
void main()
{
聽 Test*t=Test::Instance();
聽 t->a=5;
聽 t->b=25;
聽 t->c=35;
聽 cout<<"t: a="<<t->a<<" b="<<t->b<<" c="<<t->c<<endl;
聽 Test*t2;
聽 t2=Test::Instance();
聽 cout<<"t2 a="<<t2->a<<" b="<<t2->b<<" c="<<t2->c<<endl;
聽 t2->Release();
}


Beginning to 緙栫▼ 2006-04-21 09:31 鍙戣〃璇勮
]]>
EffectiveC++2ed 鍏充簬鍑芥暟榪斿洖瀵硅薄錛屽紩鐢ㄨ繕鏄寚閽?/title><link>http://www.shnenglu.com/richardzeng/archive/2006/03/24/4540.html</link><dc:creator>Beginning to 緙栫▼</dc:creator><author>Beginning to 緙栫▼</author><pubDate>Fri, 24 Mar 2006 07:51:00 GMT</pubDate><guid>http://www.shnenglu.com/richardzeng/archive/2006/03/24/4540.html</guid><wfw:comment>http://www.shnenglu.com/richardzeng/comments/4540.html</wfw:comment><comments>http://www.shnenglu.com/richardzeng/archive/2006/03/24/4540.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/richardzeng/comments/commentRss/4540.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/richardzeng/services/trackbacks/4540.html</trackback:ping><description><![CDATA[ <h2> <font size="3">鎴戠湅鍒癊ffectiveC++2ed涓嚱鏁拌繑鍥炲璞′腑鐨勮鏄庢劅瑙変互鍚庡啀涔熶笉鎯寵榪斿洖浠諱綍涓滆タ鍟︺傛瘮杈冩曘?/font> </h2> <p>浣嗘槸鏈夌殑鏃跺欎笉榪斿洖浠諱綍涓滆タ鏄笉琛岀殑闃褲?/p> <p>榪斿洖寮曠敤錛岃繑鍥炴寚閽堬紝榪斿洖瀵硅薄鍒板簳鎬庝箞鍐欙紵錛?br /><br />鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺?br />涓嬮潰鏄譏錛d腑鐨勫唴瀹?/p> <h2>鏉℃23: 蹇呴』榪斿洖涓涓璞℃椂涓嶈璇曞浘榪斿洖涓涓紩鐢?/h2> <p> </p> <p>鎹鐖卞洜鏂潶鏇炬彁鍑鴻繃榪欐牱鐨勫緩璁細灝藉彲鑳藉湴璁╀簨鎯呯畝鍗曪紝浣嗕笉瑕佽繃浜庣畝鍗曘傚湪c++璇█涓浉浼肩殑璇存硶搴旇鏄細灝藉彲鑳藉湴浣跨▼搴忛珮鏁堬紝浣嗕笉瑕佽繃浜庨珮鏁堛?/p> <p>涓鏃︾▼搴忓憳鎶撲綇浜嗏滀紶鍊尖濆湪鏁堢巼涓婄殑鎶婃焺錛堝弬瑙佹潯嬈?2錛夛紝浠栦滑浼氬彉寰楀崄鍒嗘瀬绔紝鎭ㄤ笉寰楁寲鍑烘瘡涓涓殣钘忓湪紼嬪簭涓殑浼犲兼搷浣溿傚矀涓嶇煡錛屽湪浠栦滑涓嶆噲鍦拌拷姹傜函綺圭殑鈥滀紶寮曠敤鈥濈殑榪囩▼涓紝浠栦滑浼氫笉鍙伩鍏嶅湴鐘彟涓涓弗閲嶇殑閿欒錛氫紶閫掍竴涓茍涓嶅瓨鍦ㄧ殑瀵硅薄鐨勫紩鐢ㄣ傝繖灝變笉鏄ソ浜嬩簡銆?/p> <p>鐪嬩竴涓〃紺烘湁鐞嗘暟鐨勭被錛屽叾涓寘鍚竴涓弸鍏冨嚱鏁幫紝鐢ㄤ簬涓や釜鏈夌悊鏁扮浉涔橈細</p> <p>class rational {<br />public:<br />聽 rational(int numerator = 0, int denominator = 1);</p> <p>聽 ...</p> <p>private:<br />聽 int n, d;聽聽聽聽聽聽聽聽聽聽聽聽聽 // 鍒嗗瓙鍜屽垎姣?/p> <p>friend<br />聽 const rational聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // 鍙傝鏉℃21錛氫負浠涔?br />聽聽聽 operator*(const rational& lhs,聽聽聽 // 榪斿洖鍊兼槸const<br />聽聽聽聽聽聽聽聽聽聽聽聽聽 const rational& rhs)聽聽聽聽 <br />};</p> <p>inline const rational operator*(const rational& lhs,<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 const rational& rhs)<br />{<br />聽 return rational(lhs.n * rhs.n, lhs.d * rhs.d);<br />}</p> <p>寰堟槑鏄撅紝榪欎釜鐗堟湰鐨刼perator*鏄氳繃浼犲艱繑鍥炲璞$粨鏋滐紝濡傛灉涓嶅幓鑰冭檻瀵硅薄鏋勯犲拰鏋愭瀯鏃剁殑寮閿錛屼綘灝辨槸鍦ㄩ冮伩浣滀負涓涓▼搴忓憳鐨勮矗浠匯傚彟澶栦竴浠跺緢鏄庢樉鐨勪簨瀹炴槸錛岄櫎闈炵‘瀹炴湁蹇呰錛屽惁鍒欒皝閮戒笉鎰挎剰鎵挎媴榪欐牱涓涓復鏃跺璞$殑寮閿銆傞偅涔堬紝闂灝卞綊緇撲簬錛氱‘瀹炴湁蹇呰鍚楋紵</p> <p>絳旀鏄紝濡傛灉鑳借繑鍥炰竴涓紩鐢紝褰撶劧灝辨病鏈夊繀瑕併備絾璇瘋浣忥紝寮曠敤鍙槸涓涓悕瀛楋紝涓涓叾瀹冩煇涓凡緇忓瓨鍦ㄧ殑瀵硅薄鐨勫悕瀛椼傛棤璁轟綍鏃剁湅鍒頒竴涓紩鐢ㄧ殑澹版槑錛屽氨瑕佺珛鍗抽棶鑷繁錛氬畠鐨勫彟涓涓悕瀛楁槸浠涔堝憿錛熷洜涓哄畠蹇呯劧榪樻湁鍙﹀涓涓粈涔堝悕瀛楋紙瑙佹潯嬈緈1錛夈傛嬁operator*鏉ヨ錛屽鏋滃嚱鏁拌榪斿洖涓涓紩鐢紝閭e畠榪斿洖鐨勫繀欏繪槸鍏跺畠鏌愪釜宸茬粡瀛樺湪鐨剅ational瀵硅薄鐨勫紩鐢紝榪欎釜瀵硅薄鍖呭惈浜嗕袱涓璞$浉涔樼殑緇撴灉銆?/p> <p>浣嗭紝鏈熸湜鍦ㄨ皟鐢╫perator*涔嬪墠鏈夎繖鏍蜂竴涓璞″瓨鍦ㄦ槸娌¢亾鐞嗙殑銆備篃灝辨槸璇達紝濡傛灉鏈変笅闈㈢殑浠g爜錛?/p> <p>rational a(1, 2);聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // a = 1/2<br />rational b(3, 5);聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // b = 3/5<br />rational c = a * b;聽聽聽聽聽聽聽聽聽聽聽聽聽 // c 涓?3/10</p> <p>鏈熸湜宸茬粡瀛樺湪涓涓間負3/10鐨勬湁鐞嗘暟鏄笉鐜板疄鐨勩傚鏋渙perator* 涓瀹氳榪斿洖榪欐牱涓涓暟鐨勫紩鐢紝灝卞繀欏昏嚜宸卞垱寤鴻繖涓暟鐨勫璞°?/p> <p>涓涓嚱鏁板彧鑳芥湁涓ょ鏂規硶鍒涘緩涓涓柊瀵硅薄錛氬湪鍫嗘爤閲屾垨鍦ㄥ爢涓娿傚湪鍫嗘爤閲屽垱寤哄璞℃椂浼撮殢鐫涓涓眬閮ㄥ彉閲忕殑瀹氫箟錛岄噰鐢ㄨ繖縐嶆柟娉曪紝灝辮榪欐牱鍐檕perator*錛?/p> <p>// 鍐欐鍑芥暟鐨勭涓涓敊璇柟娉?br />inline const rational& operator*(const rational& lhs,<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 const rational& rhs)<br />{<br />聽 rational result(lhs.n * rhs.n, lhs.d * rhs.d);<br />聽 return result;<br />}</p> <p>榪欎釜鏂規硶搴旇琚惁鍐籌紝鍥犱負鎴戜滑鐨勭洰鏍囨槸閬垮厤鏋勯犲嚱鏁拌璋冪敤錛屼絾result蹇呴』瑕佽薄鍏跺畠瀵硅薄涓鏍瘋鏋勯犮傚彟澶栵紝榪欎釜鍑芥暟榪樻湁鍙﹀涓涓洿涓ラ噸鐨勯棶棰橈紝瀹冭繑鍥炵殑鏄竴涓眬閮ㄥ璞$殑寮曠敤錛屽叧浜庤繖涓敊璇紝鏉℃31榪涜浜嗘繁鍏ョ殑璁ㄨ銆?/p> <p>閭d箞錛屽湪鍫嗕笂鍒涘緩涓涓璞$劧鍚庤繑鍥炲畠鐨勫紩鐢ㄥ憿錛熷熀浜庡爢鐨勫璞℃槸閫氳繃浣跨敤new浜х敓鐨勶紝鎵浠ュ簲璇ヨ繖鏍峰啓operator*錛?/p> <p>// 鍐欐鍑芥暟鐨勭浜屼釜閿欒鏂規硶<br />inline const rational& operator*(const rational& lhs,<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 const rational& rhs)<br />{<br />聽 rational *result =<br />聽聽聽 new rational(lhs.n * rhs.n, lhs.d * rhs.d);<br />聽 return *result;<br />}</p> <p>棣栧厛錛屼綘榪樻槸寰楄礋鎷呮瀯閫犲嚱鏁拌皟鐢ㄧ殑寮閿錛屽洜涓簄ew鍒嗛厤鐨勫唴瀛樻槸閫氳繃璋冪敤涓涓傚綋鐨勬瀯閫犲嚱鏁版潵鍒濆鍖栫殑錛堣鏉℃5鍜宮8錛夈傚彟澶栵紝榪樻湁涓涓棶棰橈細璋佸皢璐熻矗鐢╠elete鏉ュ垹闄ゆ帀new鐢熸垚鐨勫璞″憿錛?/p> <p>瀹為檯涓婏紝榪欑粷瀵規槸涓涓唴瀛樻硠婕忋傚嵆浣垮彲浠ヨ鏈峯perator*鐨勮皟鐢ㄨ呭幓鍙栧嚱鏁拌繑鍥炲煎湴鍧錛岀劧鍚庣敤delete鍘誨垹闄ゅ畠錛堢粷瀵逛笉鍙兘鈥斺旀潯嬈?1灞曠ず浜嗚繖鏍風殑浠g爜浼氭槸浠涔堟牱鐨勶級錛屼絾涓浜涘鏉傜殑琛ㄨ揪寮忎細浜х敓娌℃湁鍚嶅瓧鐨勪復鏃跺鹼紝紼嬪簭鍛樻槸涓嶅彲鑳藉緱鍒扮殑銆備緥濡傦細</p> <p>rational w, x, y, z;</p> <p>w = x * y * z;</p> <p>涓や釜瀵筼perator*鐨勮皟鐢ㄩ兘浜х敓浜嗘病鏈夊悕瀛楃殑涓存椂鍊鹼紝紼嬪簭鍛樻棤娉曠湅鍒幫紝鍥犺屾棤娉曞垹闄ゃ傦紙鍐嶆鍙傝鏉℃31錛?/p> <p>涔熻錛屼綘浼氭兂浣犳瘮涓鑸殑鐔娾斺旀垨涓鑸殑紼嬪簭鍛樷斺旇鑱槑錛涗篃璁革紝浣犳敞鎰忓埌鍦ㄥ爢鏍堝拰鍫嗕笂鍒涘緩瀵硅薄鐨勬柟娉曢伩鍏嶄笉浜嗗鏋勯犲嚱鏁扮殑璋冪敤錛涗篃璁革紝浣犳兂璧蜂簡鎴戜滑鏈鍒濈殑鐩爣鏄負浜嗛伩鍏嶈繖縐嶅鏋勯犲嚱鏁扮殑璋冪敤錛涗篃璁革紝浣犳湁涓姙娉曞彲浠ュ彧鐢ㄤ竴涓瀯閫犲嚱鏁版潵鎼炴巶涓鍒囷紱涔熻錛屼綘鐨勭溂鍓嶅嚭鐜頒簡榪欐牱涓孌典唬鐮侊細operator*榪斿洖涓涓滃湪鍑芥暟鍐呴儴瀹氫箟鐨勯潤鎬乺ational瀵硅薄鈥濈殑寮曠敤錛?/p> <p>// 鍐欐鍑芥暟鐨勭涓変釜閿欒鏂規硶<br />inline const rational& operator*(const rational& lhs,<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 const rational& rhs)<br />{<br />聽 static rational result;聽聽聽聽聽 // 灝嗚浣滀負寮曠敤榪斿洖鐨?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // 闈欐佸璞?/p> <p>聽 lhs鍜宺hs 鐩鎬箻錛岀粨鏋滄斁榪況esult錛?/p> <p>聽 return result;<br />}</p> <p>榪欎釜鏂規硶鐪嬭搗鏉ュソ璞℃湁鎴忥紝铏界劧鍦ㄥ疄闄呭疄鐜頒笂闈㈢殑浼唬鐮佹椂浣犱細鍙戠幇錛屼笉璋冪敤涓涓猺ational鏋勯犲嚱鏁版槸涓嶅彲鑳界粰鍑簉esult鐨勬紜肩殑錛岃岄伩鍏嶈繖鏍風殑璋冪敤姝f槸鎴戜滑瑕佽皥璁虹殑涓婚銆傚氨綆椾綘瀹炵幇浜嗕笂闈㈢殑浼唬鐮侊紝浣嗭紝浣犲啀鑱槑涔熶笉鑳芥渶緇堟尳鏁戣繖涓笉騫哥殑璁捐銆?/p> <p>鎯崇煡閬撲負浠涔堬紝鐪嬬湅涓嬮潰榪欐鍐欏緱寰堝悎鐞嗙殑鐢ㄦ埛浠g爜錛?/p> <p>bool operator==(const rational& lhs,聽聽聽聽聽 // rationals鐨刼perator==<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 const rational& rhs);聽聽聽聽 // </p> <p>rational a, b, c, d;</p> <p>...</p> <p>if ((a * b) == (c * d)) {</p> <p>聽 澶勭悊鐩哥瓑鐨勬儏鍐?</p> <p>} else {</p> <p>聽 澶勭悊涓嶇浉絳夌殑鎯呭喌;</p> <p>}</p> <p>鐪嬪嚭鏉ヤ簡鍚楋紵((a*b) == (c*d)) 浼氭案榪滀負true錛屼笉綆錛宐錛宑鍜宒鏄粈涔堝鹼紒</p> <p>鐢ㄧ瓑浠風殑鍑芥暟褰㈠紡閲嶅啓涓婇潰鐨勭浉絳夊垽鏂鍙ュ氨寰堝鏄撴槑鐧藉彂鐢熻繖涓鍙伓琛屼負鐨勫師鍥犱簡錛?/p> <p>if (operator==(operator*(a, b), operator*(c, d)))</p> <p>娉ㄦ剰褰搊perator==琚皟鐢ㄦ椂錛屾繪湁涓や釜operator*鍒氳璋冪敤錛屾瘡涓皟鐢ㄨ繑鍥瀘perator*鍐呴儴鐨勯潤鎬乺ational瀵硅薄鐨勫紩鐢ㄣ備簬鏄紝涓婇潰鐨勮鍙ュ疄闄呬笂鏄姹俹perator==瀵光渙perator*鍐呴儴鐨勯潤鎬乺ational瀵硅薄鐨勫尖濆拰鈥渙perator*鍐呴儴鐨勯潤鎬乺ational瀵硅薄鐨勫尖濊繘琛屾瘮杈冿紝榪欐牱鐨勬瘮杈冧笉鐩哥瓑鎵嶆憿錛?/p> <p>騫歌繍鐨勮瘽錛屾垜浠ヤ笂鐨勮鏄庡簲璇ヨ凍浠ヨ鏈嶄綘錛氭兂鈥滃湪璞perator*榪欐牱鐨勫嚱鏁伴噷榪斿洖涓涓紩鐢ㄢ濆疄闄呬笂鏄湪嫻垂鏃墮棿銆備絾鎴戞病騫肩鍒頒細鐩鎬俊騫歌繍鎬諱細鍏変復鑷繁銆備竴浜涗漢鈥斺斾綘浠煡閬撹繖浜涗漢鏄寚璋佲斺旀鍒諱細鍦ㄦ兂錛屸滃敂錛屼笂闈㈤偅涓柟娉曪紝濡傛灉涓涓潤鎬佸彉閲忎笉澶熺敤錛屼篃璁稿彲浠ョ敤涓涓潤鎬佹暟緇勨︹︹?/p> <p>璇峰氨姝ゆ墦浣忥紒鎴戜滑闅鵑亾榪樻病鍙楀鍚楋紵</p> <p>鎴戜笉鑳借鑷繁鍐欎竴孌電ず渚嬩唬鐮佹潵澶珮榪欎釜璁捐錛屽洜涓哄嵆浣垮彧鎶辨湁涓婇潰榪欑鎯蟲硶閮借凍浠ヤ護浜烘劅鍒扮緸鎰с傞鍏堬紝浣犲繀欏婚夋嫨涓涓猲錛屾寚瀹氭暟緇勭殑澶у皬銆傚鏋渘澶皬錛屽氨浼氭病鍦版柟鍌ㄥ瓨鍑芥暟榪斿洖鍊鹼紝榪欏拰鎴戜滑鍓嶉潰鍚﹀畾鐨勯偅涓滈噰鐢ㄥ崟涓潤鎬佸彉閲忕殑璁捐鈥濈浉姣旀病鏈変粈涔堟敼榪涖傚鏋渘澶ぇ錛屽氨浼氶檷浣庣▼搴忕殑鎬ц兘錛屽洜涓哄嚱鏁扮涓嬈¤璋冪敤鏃舵暟緇勪腑姣忎釜瀵硅薄閮借琚垱寤恒傝繖浼氬甫鏉涓瀯閫犲嚱鏁板拰n涓瀽鏋勫嚱鏁扮殑寮閿錛屽嵆浣胯繖涓嚱鏁板彧琚皟鐢ㄤ竴嬈°傚鏋滆"optimization"錛堟渶浼樺寲錛夋槸鎸囨彁楂樿蔣浠剁殑鎬ц兘鐨勮繃紼嬶紝 閭d箞鐜板湪榪欑鍋氭硶綆鐩村彲浠ョО涓?pessimization"錛堟渶宸寲錛夈傛渶鍚庯紝鎯蟲兂鎬庝箞鎶婇渶瑕佺殑鍊兼斁鍒版暟緇勭殑瀵硅薄涓互鍙婇渶瑕佸澶х殑寮閿錛熷湪瀵硅薄闂翠紶鍊肩殑鏈鐩存帴鐨勬柟娉曟槸閫氳繃璧嬪鹼紝浣嗚祴鍊肩殑寮閿鍙堟湁澶氬ぇ鍛紵涓鑸潵璇達紝瀹冪浉褰撲簬璋冪敤涓涓瀽鏋勫嚱鏁幫紙鎽ф瘉鏃у鹼級鍐嶅姞涓婅皟鐢ㄤ竴涓瀯閫犲嚱鏁幫紙鎷瘋礉鏂板鹼級銆備絾鎴戜滑鐜板湪鐨勭洰鏍囨鏄負浜嗛伩鍏嶆瀯閫犲拰鏋愭瀯鐨勫紑閿鍟婏紒闈㈠鐜板疄鍚э細榪欎釜鏂規硶涔熺粷瀵逛笉鑳介夌敤銆?/p> <p>鎵浠ワ紝鍐欎竴涓繀欏昏繑鍥炰竴涓柊瀵硅薄鐨勫嚱鏁扮殑姝g‘鏂規硶灝辨槸璁╄繖涓嚱鏁拌繑鍥炰竴涓柊瀵硅薄銆傚浜巖ational鐨刼perator*鏉ヨ錛岃繖鎰忓懗鐫瑕佷笉灝辨槸涓嬮潰鐨勪唬鐮侊紙灝辨槸鏈鍒濈湅鍒扮殑閭f浠g爜錛夛紝瑕佷笉灝辨槸鏈川涓婂拰瀹冪瓑浠風殑浠g爜錛?/p> <p>inline const rational operator*(const rational& lhs,<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 const rational& rhs)<br />{<br />聽 return rational(lhs.n * rhs.n, lhs.d * rhs.d);<br />}</p> <p>鐨勭‘錛岃繖浼氬鑷粹渙perator*鐨勮繑鍥炲兼瀯閫犲拰鏋愭瀯鏃跺甫鏉ョ殑寮閿鈥濓紝浣嗗綊鏍圭粨搴曞畠鍙槸鐢ㄥ皬鐨勪唬浠鋒崲鏉ユ紜殑紼嬪簭榪愯琛屼負鑰屽凡銆傚喌涓旓紝浣犳墍鎷呭績鐨勫紑閿榪樻湁鍙兘姘歌繙涓嶄細鍑虹幇錛氬拰鎵鏈夌▼搴忚璁¤璦涓鏍鳳紝c++鍏佽緙栬瘧鍣ㄧ殑璁捐鑰呴噰鐢ㄤ竴浜涗紭鍖栨帾鏂芥潵鎻愰珮鎵鐢熸垚鐨勪唬鐮佺殑鎬ц兘錛屾墍浠ワ紝鍦ㄦ湁浜涘満鍚堬紝operator*鐨勮繑鍥炲間細琚畨鍏ㄥ湴闄ゅ幓錛堣鏉℃m20錛夈傚綋緙栬瘧鍣ㄩ噰鐢ㄤ簡榪欑浼樺寲鏃訛紙褰撳墠澶ч儴鍒嗙紪璇戝櫒榪欎箞鍋氾級錛岀▼搴忓拰浠ュ墠涓鏍風戶緇伐浣滐紝鍙笉榪囨槸榪愯閫熷害姣斾綘棰勮鐨勮蹇屽凡銆?/p> <p>浠ヤ笂璁ㄨ鍙互褰掔粨涓猴細褰撻渶瑕佸湪榪斿洖寮曠敤鍜岃繑鍥炲璞¢棿鍋氬喅瀹氭椂錛屼綘鐨勮亴璐f槸閫夋嫨鍙互瀹屾垚姝g‘鍔熻兘鐨勯偅涓傝嚦浜庢庝箞璁╄繖涓夋嫨鎵浜х敓鐨勪唬浠峰敖鍙兘鐨勫皬錛岄偅鏄紪璇戝櫒鐨勭敓浜у晢鍘繪兂鐨勪簨銆?/p> <img src ="http://www.shnenglu.com/richardzeng/aggbug/4540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/richardzeng/" target="_blank">Beginning to 緙栫▼</a> 2006-03-24 15:51 <a href="http://www.shnenglu.com/richardzeng/archive/2006/03/24/4540.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Doxygen 婧愪唬鐮佹枃妗h嚜鍔ㄧ敓鎴愬櫒鐨勪嬌鐢ㄧ瑪璁?/title><link>http://www.shnenglu.com/richardzeng/archive/2006/03/23/4508.html</link><dc:creator>Beginning to 緙栫▼</dc:creator><author>Beginning to 緙栫▼</author><pubDate>Thu, 23 Mar 2006 14:32:00 GMT</pubDate><guid>http://www.shnenglu.com/richardzeng/archive/2006/03/23/4508.html</guid><wfw:comment>http://www.shnenglu.com/richardzeng/comments/4508.html</wfw:comment><comments>http://www.shnenglu.com/richardzeng/archive/2006/03/23/4508.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.shnenglu.com/richardzeng/comments/commentRss/4508.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/richardzeng/services/trackbacks/4508.html</trackback:ping><description><![CDATA[     鎽樿: 鍦? google 涓婃悳浜嗗緢涔呯殑鍏充簬 Doxygen 浣跨敤鏂規硶鐨勫挌鍜氾紝鍙笉榪囬兘鏄嫳鏂囷紝鑰屼笖閮藉緢澶氱殑瑙勫垯銆傚疄闄呬笂澶у鍙渶瑕佸憡璇夊熀鏈殑瑙勫垯灝卞彲浠ャ備笅闈㈡槸鎴戝 Doxygen 鐨勬懜绱? 聽 棣栧厛鐔熺煡 Do...  <a href='http://www.shnenglu.com/richardzeng/archive/2006/03/23/4508.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/richardzeng/aggbug/4508.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/richardzeng/" target="_blank">Beginning to 緙栫▼</a> 2006-03-23 22:32 <a href="http://www.shnenglu.com/richardzeng/archive/2006/03/23/4508.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鏌ラ敊錛氫笅闈㈢殑紼嬪簭緙栬瘧娌¢棶棰橈紝涓轟粈涔堣繍琛屼細鍑洪敊鍛?/title><link>http://www.shnenglu.com/richardzeng/archive/2006/03/20/4389.html</link><dc:creator>Beginning to 緙栫▼</dc:creator><author>Beginning to 緙栫▼</author><pubDate>Mon, 20 Mar 2006 13:32:00 GMT</pubDate><guid>http://www.shnenglu.com/richardzeng/archive/2006/03/20/4389.html</guid><wfw:comment>http://www.shnenglu.com/richardzeng/comments/4389.html</wfw:comment><comments>http://www.shnenglu.com/richardzeng/archive/2006/03/20/4389.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.shnenglu.com/richardzeng/comments/commentRss/4389.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/richardzeng/services/trackbacks/4389.html</trackback:ping><description><![CDATA[ <p>鏈榪戝湪鐪嬪悏鏋楀ぇ瀛︾殑C紼嬪簭璁捐鐨勮浠訛紝鏈変竴绔犺鍒拌繖涓嚱鏁板姩鎵嬪啓浜嗕竴涓嬨?br /><br />棰樼洰錛?br />緙栧啓涓涓狪nsert鍑芥暟瀹炵幇鍦ㄥ瓧絎︿覆s涓殑絎琲涓綅緗彃鍏ュ瓧絎︿覆s1錛?br />鍦╒C++2005涓紪璇戣繖孌電▼搴忔病鏈変換浣曠殑Error鍜寃arning浣嗘槸榪愯灝變細閿欒錛屼笉鐭ラ亾涓轟粈涔堥樋錛岃楂樻墜鎸囩偣涓浜屻?br /><br />#include "stdafx.h"</p> <p>#include <iostream><br />using namespace std;</p> <p>void Insert(char *s, char *s1, int i)<br />{<br />聽char *p,*q;<br />聽p = s + strlen(s); // p聽鎸囧悜s鐨勬湯灝?1<br />聽q = p + strlen(s1);聽//q 鎸囧悜鏂版瀯閫犵殑瀛楃涓茬殑\0聽<br />聽*q = '\0';</p> <p>聽//聽<br />聽for(p--,q--;p>=s+i-1;)<br />聽{<br />聽聽*(p--) = *(q--);<br />聽}</p> <p>聽//<br />聽for(p=s+i-1;*s1;)<br />聽{<br />聽聽*(p++) = *(s1++);<br />聽}<br />}<br /><br /><br />int _tmain(int argc, _TCHAR* argv[])<br />{</p> <p>聽char *s = "Student";<br />聽char *s1 = "Teacher";</p> <p>聽Insert(s,s1,3);<br /><br />// 鏈熷緟鐨勮緭鍑烘槸StuTeacherdent;<br />聽cout<<s;</p> <p> <br />聽return 0;<br />}<br /><br /><br />// 榪樻湁鎴戝鏋滄妸insert鍑芥暟鏀規垚涓嬮潰鐨勫簲璇ヤ篃鏄彲浠ョ殑鍚?br /></p> <p>void Insert2(char *s, char *s1, int i)<br />{<br />聽char *p,*q;<br />聽p = s + strlen(s); // p聽鎸囧悜s鐨勬湯灝?1<br />聽q = p + strlen(s1);聽//q 鎸囧悜鏂版瀯閫犵殑瀛楃涓茬殑\0聽<br />聽*q = '\0';</p> <p>聽//聽<br />聽for(p--,q--;p>=s+i-1;)<br />聽{<br />聽聽*p-- = *q--;<br />聽}</p> <p>聽//<br />聽for(p=s+i-1;*s1;)<br />聽{<br />聽聽*p++ = *s1++;<br />聽}<br />}<br /></p> <img src ="http://www.shnenglu.com/richardzeng/aggbug/4389.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/richardzeng/" target="_blank">Beginning to 緙栫▼</a> 2006-03-20 21:32 <a href="http://www.shnenglu.com/richardzeng/archive/2006/03/20/4389.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.52galaxy.cn" target="_blank">久久精品午夜一区二区福利</a>| <a href="http://www.depsys.cn" target="_blank">91久久精品电影</a>| <a href="http://www.604664.cn" target="_blank">亚洲va中文字幕无码久久</a>| <a href="http://www.f4home.cn" target="_blank">精品久久久久久久</a>| <a href="http://www.hzmgdj.com.cn" target="_blank">中文字幕无码av激情不卡久久</a>| <a href="http://www.henpu.cn" target="_blank">中文国产成人精品久久不卡</a>| <a href="http://www.hy129.cn" target="_blank">一本久久久久久久</a>| <a href="http://www.hoay.com.cn" target="_blank">热re99久久6国产精品免费</a>| <a href="http://www.suzhougarden.cn" target="_blank">99久久精品国产高清一区二区</a>| <a href="http://www.qianzifu.net.cn" target="_blank">亚洲国产精品久久久久婷婷软件 </a>| <a href="http://www.kzhg.net.cn" target="_blank">久久WWW免费人成—看片</a>| <a href="http://www.aygdxx.cn" target="_blank">99精品久久精品一区二区</a>| <a href="http://www.okfupo.cn" target="_blank">色婷婷噜噜久久国产精品12p</a>| <a href="http://www.nthaixin.com.cn" target="_blank">麻豆AV一区二区三区久久</a>| <a href="http://www.gfba.cn" target="_blank">久久经典免费视频</a>| <a href="http://www.pouhai.cn" target="_blank">久久精品国产亚洲AV不卡</a>| <a href="http://www.lslvyekj.cn" target="_blank">久久婷婷五月综合色奶水99啪</a>| <a href="http://www.yhic.net.cn" target="_blank">久久成人国产精品一区二区</a>| <a href="http://www.dgdike.cn" target="_blank">久久777国产线看观看精品</a>| <a href="http://www.4o2ptp.cn" target="_blank">亚洲av伊人久久综合密臀性色</a>| <a href="http://www.cdge.cn" target="_blank">国产精品久久久天天影视香蕉</a>| <a href="http://www.hy129.cn" target="_blank">久久精品无码一区二区WWW</a>| <a href="http://www.ysmyy.com.cn" target="_blank">91视频国产91久久久</a>| <a href="http://www.75063.com.cn" target="_blank">亚洲国产精品久久久天堂 </a>| <a href="http://www.zhe9tao.cn" target="_blank">麻豆精品久久精品色综合</a>| <a href="http://www.navas.cn" target="_blank">久久精品一本到99热免费</a>| <a href="http://www.smsunion.cn" target="_blank">久久男人AV资源网站</a>| <a href="http://www.tbssyc.cn" target="_blank">久久99精品久久久久久噜噜</a>| <a href="http://www.vip910.cn" target="_blank">久久精品这里热有精品</a>| <a href="http://www.wangzhuanzhe.cn" target="_blank">国产亚洲色婷婷久久99精品</a>| <a href="http://www.qq577.cn" target="_blank">久久亚洲国产欧洲精品一</a>| <a href="http://www.520menghuan.cn" target="_blank">亚洲国产精品无码久久一线</a>| <a href="http://www.newlifefitness.cn" target="_blank">国产精品中文久久久久久久</a>| <a href="http://www.wanghaochuju.cn" target="_blank">久久99久久无码毛片一区二区</a>| <a href="http://www.mdjzyz.cn" target="_blank">日本道色综合久久影院</a>| <a href="http://www.jdongshop.cn" target="_blank">日韩欧美亚洲综合久久影院d3</a>| <a href="http://www.951ax.cn" target="_blank">精品一区二区久久</a>| <a href="http://www.showfans.com.cn" target="_blank">久久97精品久久久久久久不卡</a>| <a href="http://www.daliandamingda.cn" target="_blank">久久久久人妻精品一区</a>| <a href="http://www.odostudio.cn" target="_blank">国产精品久久久久久一区二区三区</a>| <a href="http://www.ems1.cn" target="_blank">精品无码久久久久国产</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>