青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Design&Art

C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
  26 Posts :: 0 Stories :: 38 Comments :: 0 Trackbacks

2009年4月11日 #

一、對(duì)于基本聲明 

1.const int r=100; //標(biāo)準(zhǔn)const變量聲明加初始化,因?yàn)槟J(rèn)內(nèi)部連接所以必須被初始化,其作用域?yàn)榇宋募幾g器經(jīng)過(guò)類(lèi)型檢查后直接用100在編譯時(shí)替換。 

2.extend const int r=100; //將const改為外部連接,作用于擴(kuò)大至全局,編譯時(shí)會(huì)分配內(nèi)存,并且可以不進(jìn)行初始化,僅僅作為聲明,編譯器認(rèn)為在程序其他地方進(jìn)行了定義。 

3.const int r[ ]={1,2,3,4}; 

struct S {int a,b;}; 
const S s[ ]={(1,2),(3.4)}; //以上兩種都是常量集合,編譯器會(huì)為其分配內(nèi)存,所以不能在編譯期間使用其中的值,例如:int temp[r[2]];這樣的編譯器會(huì)報(bào)告不能找到常量表達(dá)式 

二、對(duì)于指針 
1.const int *r=&x; //聲明r為一個(gè)指向常量的x的指針,r指向的對(duì)象不能被修改,但他可以指向任何地址的常量。 

2.int const *r=&x; //與用法1完全等價(jià),沒(méi)有任何區(qū)別。 

3.int * const r=&x; //聲明r為一個(gè)常量指針,他指向x,r這個(gè)指針的指向不能被修改,但他指向的地址的內(nèi)容可以修改。 

4.const int * const r=&x; //綜合1、3用法,r是一個(gè)指向常量的常量型指針。 

三、對(duì)于類(lèi)型檢查 
可以把一個(gè)非const對(duì)象賦給一個(gè)指向const的指針,因?yàn)橛袝r(shí)候我們不想從這個(gè)指針來(lái)修改其對(duì)象的值;但是不可以把一個(gè)const對(duì)象賦值給一個(gè)非const指針,因?yàn)檫@樣可能會(huì)通過(guò)這個(gè)指針改變指向?qū)ο蟮闹担泊嬖谑惯@種操作通過(guò)的合法化寫(xiě)法,使用類(lèi)型強(qiáng)制轉(zhuǎn)換可以通過(guò)指針改變const對(duì)象: 

const int r=100; 
int * ptr = const_cast<int *>(&r); //C++標(biāo)準(zhǔn),C語(yǔ)言使用:int * ptr =(int*)&r; 

四、對(duì)于字符數(shù)組 
如char * name = “china”; 這樣的語(yǔ)句,在編譯時(shí)是能夠通過(guò)的,但是”china”是常量字符數(shù)組,任何想修改他的操作也能通過(guò)編譯但會(huì)引起運(yùn)行時(shí)錯(cuò)誤,如果我們想修改字符數(shù)組的話(huà)就要使用char name[ ] = “china”; 這種形式。 

五、對(duì)于函數(shù) 
1.void Fuction1 ( const int r ); //此處為參數(shù)傳遞const值,意義是變量初值不能被函數(shù)改變 

2.const int Fuction1 (int); //此處返回const值,意思指返回的原函數(shù)里的變量的初值不能被修改,但是函數(shù)按值返回的這個(gè)變量被制成副本,能不能被修改就沒(méi)有了意義,它可以被賦給任何的const或非const類(lèi)型變量,完全不需要加上這個(gè)const關(guān)鍵字。但這只對(duì)于內(nèi)部類(lèi)型而言(因?yàn)閮?nèi)部類(lèi)型返回的肯定是一個(gè)值,而不會(huì)返回一個(gè)變量,不會(huì)作為左值使用),對(duì)于用戶(hù)自定義類(lèi)型,返回值是常量是非常重要的,見(jiàn)下面條款3。 

3.Class CX; //內(nèi)部有構(gòu)造函數(shù),聲明如CX(int r =0) 

CX Fuction1 () { return CX(); } 

const CX Fuction2 () { return CX(); } 

如有上面的自定義類(lèi)CX,和函數(shù)Fuction1()和Fuction2(),我們進(jìn)行如下操作時(shí): 

Fuction1() = CX(1); //沒(méi)有問(wèn)題,可以作為左值調(diào)用 

Fuction2() = CX(1); //編譯錯(cuò)誤,const返回值禁止作為左值調(diào)用。因?yàn)樽笾蛋逊祷刂底鳛樽兞繒?huì)修改其返回值,const聲明禁止這種修改。 


4.函數(shù)中指針的const傳遞和返回: 

int F1 (const char * pstr); //作為傳遞的時(shí)候使用const修飾可以保證不會(huì)通過(guò)這個(gè)指針來(lái)修改傳遞參數(shù)的初值,這里在函數(shù)內(nèi)部任何修改*pstr的企圖都會(huì)引起編譯錯(cuò)誤。 

const char * F2 (); //意義是函數(shù)返回的指針指向的對(duì)象是一個(gè)const對(duì)象,它必須賦給一個(gè)同樣是指向const對(duì)象的指針。 

const char * const F3(); //比上面多了一個(gè)const,這個(gè)const的意義只是在他被用作左值時(shí)有效,它表明了這個(gè)指針除了指向const對(duì)象外,它本身也不能被修改,所以就不能當(dāng)作左值來(lái)處理。 


5.函數(shù)中引用的const傳遞: 

void F1 ( const X& px); //這樣的一個(gè)const引用傳遞和最普通的函數(shù)按值傳遞的效果是一模一樣的,他禁止對(duì)引用的對(duì)象的一切修改,唯一不同的是按值傳遞會(huì)先建立一個(gè)類(lèi)對(duì)象的副本,然后傳遞過(guò)去,而它直接傳遞地址,所以這種傳遞比按值傳遞更有效。 

**另外只有引用的const傳遞可以傳遞一個(gè)臨時(shí)對(duì)象,因?yàn)榕R時(shí)對(duì)象都是const屬性,且是不可見(jiàn)的,他短時(shí)間存在一個(gè)局部域中,所以不能使用指針,只有引用的const傳遞能夠捕捉到這個(gè)家伙。 

六、對(duì)于類(lèi) 
1.首先,對(duì)于const的成員變量,只能在構(gòu)造函數(shù)里使用初始化成員列表來(lái)初始化,試圖在構(gòu)造函數(shù)體內(nèi)進(jìn)行初始化const成員變量會(huì)引起編譯錯(cuò)誤。初始化成員列表形如: 
2.X:: X ( int ir ): r(ir) {} //假設(shè)r是類(lèi)X的const成員變量 

2.const成員函數(shù)。提到這個(gè)概念首先要談到const對(duì)象,正象內(nèi)置類(lèi)型能夠定義const對(duì)象一樣(const int r=10;),用戶(hù)自定義類(lèi)型也可以定義const對(duì)象(const X px(10);),編譯器要保證這個(gè)對(duì)象在其生命周期內(nèi)不能夠被改變。如果你定義了這樣的一個(gè)const對(duì)象,那么對(duì)于這個(gè)對(duì)象的一切非const成員函數(shù)的調(diào)用,編譯器為了保證對(duì)象的const特性,都會(huì)禁止并在編譯期間報(bào)錯(cuò)。所以如果你想讓你的成員函數(shù)能夠在const對(duì)象上進(jìn)行操作的話(huà),就要把這個(gè)函數(shù)聲明為const成員函數(shù)。假如f( )是類(lèi)中的成員函數(shù)的話(huà),它的聲明形如: 
int f( ) const; //const放在函數(shù)的最后,編譯器會(huì)對(duì)這個(gè)函數(shù)進(jìn)行檢查,在這個(gè)函數(shù)中的任何試圖改變成員變量和調(diào)用非const成員函數(shù)的操作都被視為非法 
注意:類(lèi)的構(gòu)造和析構(gòu)函數(shù)都不能是const函數(shù)。 

3.建立了一個(gè)const成員函數(shù),但仍然想用這個(gè)函數(shù)改變對(duì)象內(nèi)部的數(shù)據(jù)。這樣的一個(gè)要求也會(huì)經(jīng)常遇到,尤其是在一個(gè)苛刻的面試考官那里。首先我們要弄清楚考官的要求,因?yàn)橛袃煞N方法可以實(shí)現(xiàn),如果這位考官要求不改變?cè)瓉?lái)類(lèi)的任何東西,只讓你從當(dāng)前這個(gè)const成員函數(shù)入手,那么你只有使用前面提到的類(lèi)型強(qiáng)制轉(zhuǎn)換方法。實(shí)例如下: 

//假如有一個(gè)叫做X的類(lèi),它有一個(gè)int成員變量r,我們需要通過(guò)一個(gè)const成員函數(shù)f( )來(lái)對(duì)這個(gè)r進(jìn)行++r操作,代碼如下 

void X::f( ) const 

{ (const_cast(this)) -> ++r; } //通過(guò)this指針進(jìn)行類(lèi)型強(qiáng)制轉(zhuǎn)換實(shí)現(xiàn) 

另外一種方法就是使用關(guān)鍵字:mutable。如果你的成員變量在定義時(shí)是這個(gè)樣子的: 

mutable int r ; 

那么它就告訴編譯器這個(gè)成員變量可以通過(guò)const成員函數(shù)改變。編譯器就不會(huì)再理會(huì)對(duì)他的檢查了。 
posted @ 2009-04-11 00:51 安帛偉 閱讀(367) | 評(píng)論 (0)編輯 收藏

2009年3月4日 #

在VC6中,如何查看以下代碼中vec里的內(nèi)容?

    vector<int> vec;
    vec.push_back(
1);
    vec.push_back(
14);
如果在Watch窗口中直接輸入vec,則會(huì)出現(xiàn)如下內(nèi)容:

眾所周知,vector使用的是線(xiàn)性連續(xù)存儲(chǔ)空間,上圖中的_First和_Last分別指向配置得來(lái)的連續(xù)空間中目前已被使用的范圍,而_End指向整塊連續(xù)空間的尾端。
因此,我們可以用如下方式來(lái)查看vector里的內(nèi)容:
vec._First[0]
vec._First[1]


同理,對(duì)于嵌套的vector(如下代碼中的vv)
    vector<int> vec;
    vec.push_back(
1);
    vec.push_back(
14);
    vector
< vector<int> > vv;
    vv.push_back(vec);
    vec.push_back(
15);
    vv.push_back(vec);
我們可以這樣查看:
vv._First[1]._First[2]
posted @ 2009-03-04 14:42 安帛偉 閱讀(5100) | 評(píng)論 (1)編輯 收藏

2009年1月22日 #

STL的map表里有一個(gè)erase方法用來(lái)從一個(gè)map中刪除掉指令的節(jié)點(diǎn)
eg:

map<string,string> mapTest;
typedef map
<string,string>::iterator ITER;

ITER iter
=mapTest.find(key);
mapTest.erase(iter);

 像上面這樣只是刪除單個(gè)節(jié)點(diǎn),map的形為不會(huì)出現(xiàn)任務(wù)問(wèn)題,
但是當(dāng)在一個(gè)循環(huán)里用的時(shí)候,往往會(huì)被誤用,那是因?yàn)槭褂谜邲](méi)有正確理解iterator的概念.
像下面這樣的一個(gè)例子就是錯(cuò)誤的寫(xiě)法,
eg:

for(ITER iter=mapTest.begin();iter!=mapTest.end();++iter)
{
cout
<<iter->first<<":"<<iter->second<<endl;
mapTest.erase(iter);
}

這是一種錯(cuò)誤的寫(xiě)法,會(huì)導(dǎo)致程序行為不可知.究其原因是map 是關(guān)聯(lián)容器,對(duì)于關(guān)聯(lián)容器來(lái)說(shuō),如果某一個(gè)元素已經(jīng)被刪除,那么其對(duì)應(yīng)的迭代器就失效了,不應(yīng)該再被使用;否則會(huì)導(dǎo)致程序無(wú)定義的行為。
可以用以下方法解決這問(wèn)題:
正確的寫(xiě)法
1.使用刪除之前的迭代器定位下一個(gè)元素。STL建議的使用方式

for(ITER iter=mapTest.begin();iter!=mapTest.end();)
{
cout
<<iter->first<<":"<<iter->second<<endl;
mapTest.erase(iter
++);
}

2. erase() 成員函數(shù)返回下一個(gè)元素的迭代器

for(ITER iter=mapTest.begin();iter!=mapTest.end();)
{
cout
<<iter->first<<":"<<iter->second<<endl;
iter
=mapTest.erase(iter);
}
posted @ 2009-01-22 13:33 安帛偉 閱讀(26411) | 評(píng)論 (7)編輯 收藏

2008年5月28日 #

開(kāi)閉原則(OCP):對(duì)擴(kuò)展開(kāi)放,對(duì)修改封閉
里氏代換原則(LSP):子類(lèi)可替換父類(lèi),反之不行
依賴(lài)倒置原則(DIP):依賴(lài)于抽象而不是依賴(lài)與具體
接口隔離原則(ISP):多個(gè)專(zhuān)門(mén)接口比一個(gè)總接口好
合成/聚合復(fù)用原則(CARP):盡量使用合成/聚合,而不是繼承
迪米特法則(LoD):不要和陌生人說(shuō)話(huà)
posted @ 2008-05-28 03:11 安帛偉 閱讀(567) | 評(píng)論 (1)編輯 收藏

2007年12月18日 #

GMOS擊鍵模型

GMOSgoals/objects/methods/slecetion rules

基本操作時(shí)間

名稱(chēng)和助記

典型值

含義

擊鍵(Keying),K

0.2

敲擊鍵盤(pán)上的一個(gè)鍵所需要的時(shí)間

指向(Pointing),P

1.1

用戶(hù)指向顯示屏上某一位置所需要的時(shí)間

歸位(Homing),H

0.4

用戶(hù)將手從鍵盤(pán)移動(dòng)到鼠標(biāo)或者從鼠標(biāo)移動(dòng)到鍵盤(pán)需要的時(shí)間

心理準(zhǔn)備(Mentally preparing),M

1.35

用戶(hù)進(jìn)入下一步所需要的心理準(zhǔn)備時(shí)間

響應(yīng)(Responding),R

 

 

 

插入刪除心理準(zhǔn)備活動(dòng)的規(guī)則

規(guī)則0 候選M的初始插入

在所有的K之前插入M。在所有用于選擇命令的P之前插入M。但是對(duì)于選擇命令參數(shù)的P,不要插入M

規(guī)則1 預(yù)期M的刪除

如果M前面的操作符號(hào)能完全預(yù)期M后邊的一個(gè)操作符,則將該M刪除。例如移動(dòng)鼠標(biāo)并點(diǎn)擊目標(biāo),就需要?jiǎng)h除按規(guī)則0插入的M,變PMKPK

規(guī)則2 認(rèn)知但愿內(nèi)M的刪除

如果一串MK屬于同一個(gè)認(rèn)知單元,則刪除除了第一個(gè)以外的所有M。例如連續(xù)輸入一個(gè)單詞或者多個(gè)數(shù)字。

規(guī)則3 連續(xù)終結(jié)符之前M的刪除

如果K是一個(gè)認(rèn)知單元后面的多余分隔符,如命令的分隔符后面緊跟著參數(shù)的分隔符,則將之前的M刪除。

規(guī)則4 作為命令終結(jié)符的M的刪除

如果K是一個(gè)分隔符,且后面緊跟著一個(gè)常量字符串,則將之前的M刪除。

規(guī)則5 重疊M的刪除

不要記入任何與R重疊的M

 

舉例:

設(shè)計(jì)一個(gè)軟件可以完成如下功能,可以把攝氏溫度轉(zhuǎn)換成華氏溫度,也可以把華氏溫度轉(zhuǎn)換成攝氏溫度。

界面一如下:


缺省選項(xiàng)沒(méi)有選中

HPKHKKKKK

HMPMKMHMKMKMKMKMK

HMPKHMKKKKMK

2H3M1P6K = 2*0.4 + 3*1.35 + 1.1 + 6*0.2 = 7.15

 

缺省選項(xiàng)選中

MKKKKMK

2M5K = 2*1.35 + 5*0.2 = 3.7

 

取兩者的平均值(7.15 + 3.7/2 =5.4

posted @ 2007-12-18 20:40 安帛偉 閱讀(1098) | 評(píng)論 (0)編輯 收藏

2007年11月26日 #

選自 Martin Fowler的《Refactoring,Improving the design of the existing code》一書(shū)

1.Duplicated Code
  代碼重復(fù)幾乎是最常見(jiàn)的異味了。他也是Refactoring 的主要目標(biāo)之一。代碼重復(fù)往往來(lái)自于copy-and-paste 的編程風(fēng)格。與他相對(duì)應(yīng)OAOO 是一個(gè)好系統(tǒng)的重要標(biāo)志。

2.Long method
  它是傳統(tǒng)結(jié)構(gòu)化的“遺毒“。一個(gè)方法應(yīng)當(dāng)具有自我獨(dú)立的意圖,不要把幾個(gè)意圖放在一起。

3.Large Class
  大類(lèi)就是你把太多的責(zé)任交給了一個(gè)類(lèi)。這里的規(guī)則是One Class One Responsibility。

4.Divergent Change
  一個(gè)類(lèi)里面的內(nèi)容變化率不同。某些狀態(tài)一個(gè)小時(shí)變一次,某些則幾個(gè)月一年才變一次;某些狀態(tài)因?yàn)檫@方面的原因發(fā)生變化,而另一些則因?yàn)槠渌矫娴脑蜃円淮巍C嫦驅(qū)ο蟮某橄缶褪前严鄬?duì)不變的和相對(duì)變化相隔離。把問(wèn)題變化的一方面和另一方面相隔離。這使得這些相對(duì)不變的可以重用。問(wèn)題變化的每個(gè)方面都可以單獨(dú)重用。這種相異變化的共存使得重用非常困難。

5.Shotgun Surgery
  這正好和上面相反。對(duì)系統(tǒng)一個(gè)地方的改變涉及到其他許多地方的相關(guān)改變。這些變化率和變化內(nèi)容相似的狀態(tài)和行為通常應(yīng)當(dāng)放在同一個(gè)類(lèi)中。

6.Feature Envy
  對(duì)象的目的就是封裝狀態(tài)以及與這些狀態(tài)緊密相關(guān)的行為。如果一個(gè)類(lèi)的方法頻繁用get 方法存取其他類(lèi)的狀態(tài)進(jìn)行計(jì)算,那么你要考慮把行為移到涉及狀態(tài)數(shù)目最多的那個(gè)類(lèi)。

7.Data Clumps
  某些數(shù)據(jù)通常像孩子一樣成群玩耍:一起出現(xiàn)在很多類(lèi)的成員變量中,一起出現(xiàn)在許多方法的參數(shù)中…..,這些數(shù)據(jù)或許應(yīng)該自己獨(dú)立形成對(duì)象。

8.Primitive Obsession
  面向?qū)ο蟮男率滞ǔA?xí)慣使用幾個(gè)原始類(lèi)型的數(shù)據(jù)來(lái)表示一個(gè)概念。譬如對(duì)于范圍,他們會(huì)使用兩個(gè)數(shù)字。對(duì)于Money,他們會(huì)用一個(gè)浮點(diǎn)數(shù)來(lái)表示。因?yàn)槟銢](méi)有使用對(duì)象來(lái)表達(dá)問(wèn)題中存在的概念,這使得代碼變的難以理解,解決問(wèn)題的難度大大增加。
  好的習(xí)慣是擴(kuò)充語(yǔ)言所能提供原始類(lèi)型,用小對(duì)象來(lái)表示范圍、金額、轉(zhuǎn)化率、郵政編碼等等。

9.Switch Statement
  基于常量的開(kāi)關(guān)語(yǔ)句是 OO 的大敵,你應(yīng)當(dāng)把他變?yōu)樽宇?lèi)、state 或strategy。

10. Parallel Inheritance Hierarchies
  并行的繼承層次是shotgun surgery 的特殊情況。因?yàn)楫?dāng)你改變一個(gè)層次中的某一個(gè)類(lèi)時(shí),你必須同時(shí)改變另外一個(gè)層次的并行子類(lèi)。

11. Lazy Class
  一個(gè)干活不多的類(lèi)。類(lèi)的維護(hù)需要額外的開(kāi)銷(xiāo),如果一個(gè)類(lèi)承擔(dān)了太少的責(zé)任,應(yīng)當(dāng)消除它。

12. Speculative Generality
  一個(gè)類(lèi)實(shí)現(xiàn)了從未用到的功能和通用性。通常這樣的類(lèi)或方法唯一的用戶(hù)是testcase。不要猶豫,刪除它。

13. Temporary Field
  一個(gè)對(duì)象的屬性可能只在某些情況下才有意義。這樣的代碼將難以理解。專(zhuān)門(mén)建立一個(gè)對(duì)象來(lái)持有這樣的孤兒屬性,把只和他相關(guān)的行為移到該類(lèi)。最常見(jiàn)的是一個(gè)特定的算法需要某些只有該算法才有用的變量。

14. Message Chain
  消息鏈發(fā)生于當(dāng)一個(gè)客戶(hù)向一個(gè)對(duì)象要求另一個(gè)對(duì)象,然后客戶(hù)又向這另一對(duì)象要求另一個(gè)對(duì)象,再向這另一個(gè)對(duì)象要求另一個(gè)對(duì)象,如此如此。這時(shí),你需要隱藏分派。

15. Middle Man
  對(duì)象的基本特性之一就是封裝,而你經(jīng)常會(huì)通過(guò)分派去實(shí)現(xiàn)封裝。但是這一步不能走得太遠(yuǎn),如果你發(fā)現(xiàn)一個(gè)類(lèi)接口的一大半方法都在做分派,你可能需要移去這個(gè)中間人。

16. Inappropriate Intimacy
  某些類(lèi)相互之間太親密,它們花費(fèi)了太多的時(shí)間去磚研別人的私有部分。對(duì)人類(lèi)而言,我們也許不應(yīng)該太假正經(jīng),但我們應(yīng)當(dāng)讓自己的類(lèi)嚴(yán)格遵守禁欲主義。

17. Alternative Classes with Different Interfaces
  做相同事情的方法有不同的函數(shù)signature,一致把它們往類(lèi)層次上移,直至協(xié)議一致。

18. Incomplete Library Class
  要建立一個(gè)好的類(lèi)庫(kù)非常困難。我們大量的程序工作都基于類(lèi)庫(kù)實(shí)現(xiàn)。然而,如此廣泛而又相異的目標(biāo)對(duì)庫(kù)構(gòu)建者提出了苛刻的要求。庫(kù)構(gòu)建者也不是萬(wàn)能的。有時(shí)候我們會(huì)發(fā)現(xiàn)庫(kù)類(lèi)無(wú)法實(shí)現(xiàn)我們需要的功能。而直接對(duì)庫(kù)類(lèi)的修改有非常困難。這時(shí)候就需要用各種手段進(jìn)行Refactoring。

19. Data Class
  對(duì)象包括狀態(tài)和行為。如果一個(gè)類(lèi)只有狀態(tài)沒(méi)有行為,那么肯定有什么地方出問(wèn)題了。

20. Refused Bequest
  超類(lèi)傳下來(lái)很多行為和狀態(tài),而子類(lèi)只是用了其中的很小一部分。這通常意味著你的類(lèi)層次有問(wèn)題。

21. Comments
  經(jīng)常覺(jué)得要寫(xiě)很多注釋表示你的代碼難以理解。如果這種感覺(jué)太多,表示你需要Refactoring。

 

posted @ 2007-11-26 17:09 安帛偉 閱讀(454) | 評(píng)論 (0)編輯 收藏

2007年11月21日 #

     摘要: C++的static有兩種用法:面向過(guò)程程序設(shè)計(jì)中的static和面向?qū)ο蟪绦蛟O(shè)計(jì)中的static。前者應(yīng)用于普通變量和函數(shù),不涉及類(lèi);后者主要說(shuō)明static在類(lèi)中的作用。
  閱讀全文
posted @ 2007-11-21 01:10 安帛偉 閱讀(345) | 評(píng)論 (0)編輯 收藏

2007年11月9日 #

在網(wǎng)上看到這樣一小段有意思的代碼:
int main()
{
    
int i;
    
int a[10];
    
for(i=0; i<=10; i++)
    {
        a[i]
=0;
        printf(
"%d ",a[i]);
    }
    
return 0;
}
這段代碼里的錯(cuò)誤很明顯,數(shù)組a在循環(huán)時(shí)越界了。不過(guò)在VC6下編譯運(yùn)行后的結(jié)果很有意思,是個(gè)無(wú)限循環(huán),知道為什么嗎?
posted @ 2007-11-09 20:00 安帛偉 閱讀(350) | 評(píng)論 (0)編輯 收藏

2007年10月18日 #

     摘要: 處理在程序的運(yùn)行時(shí)刻發(fā)生的錯(cuò)誤,對(duì)于任何一個(gè)程序設(shè)計(jì)者來(lái)講都是不陌生的。對(duì)于錯(cuò)誤的處理,我們有很多方法,本篇著重介紹的是C++中的錯(cuò)誤異常處理。  閱讀全文
posted @ 2007-10-18 15:38 安帛偉 閱讀(515) | 評(píng)論 (0)編輯 收藏

2007年10月15日 #

在網(wǎng)上搜索“什么是哲學(xué)”,最后發(fā)現(xiàn)哲學(xué)沒(méi)有明確的定義(至少中文的沒(méi)找到)。
不過(guò)以我的理解,哲學(xué)就是思辯。思考會(huì)讓人認(rèn)識(shí)到以前未認(rèn)識(shí)到的東西,辯論則會(huì)減少思考過(guò)程中的錯(cuò)誤認(rèn)識(shí)。通過(guò)這樣的手段,人類(lèi)得以發(fā)展出現(xiàn)代科學(xué)體系。
一切建立在思辯基礎(chǔ)之上的學(xué)科都是哲學(xué)的衍生學(xué)科,這包括所有的自然科學(xué)。計(jì)算機(jī)科學(xué)是自然科學(xué)的一個(gè)分支,所以也是哲學(xué),這也就是為什么英文里的Ph.D(Doctor of Philosophy Degree 博士學(xué)位)是指所有自然科學(xué)的博士而非特指哲學(xué)專(zhuān)業(yè)的博士的原因。
有一個(gè)老游戲“文明”,游戲中最先研究出“哲學(xué)”的國(guó)家將直接進(jìn)入“黃金時(shí)代”,生產(chǎn)力大大提高。這一點(diǎn)設(shè)計(jì)得非常切合實(shí)際,也說(shuō)明了哲學(xué)在人類(lèi)發(fā)展史上的重要性。
就中國(guó)來(lái)說(shuō),顯然哲學(xué)這個(gè)詞被“馬克思主義哲學(xué)”所誤用,一提哲學(xué)好像都與馬克思主義有關(guān),其實(shí)不然。“堅(jiān)持XXXX不動(dòng)搖”這一類(lèi)的言論其本身就不具有思辯的特性。我并不是說(shuō)XXXX不正確,只是如果不去辯論,怎么能知道XXXX是否正確呢;如果XXXX本身是正確的,那么辯論不是可以更好的體現(xiàn)出它的正確性嗎?
中國(guó)經(jīng)歷了二千年的封建制度,在這二千年里中國(guó)顯然沒(méi)有發(fā)展出哲學(xué),所以自然科學(xué)體系沒(méi)有在中國(guó)歷史中產(chǎn)生也就很正常了。“勾股定理”、四大發(fā)明等,這些可能是中國(guó)歷史上為數(shù)不多的與自然科學(xué)相關(guān)的成果了,但是沒(méi)有哲學(xué),一切成果也沒(méi)有辦法進(jìn)一步發(fā)展成科學(xué)體系了。中國(guó)的封建制度顯然發(fā)展到了一個(gè)很高的高度,該體系應(yīng)該說(shuō)是很完善的:“君貴民輕”的教育制度;儒家思想被統(tǒng)治階段所利用;中央集權(quán)與軍隊(duì)的使用。所有這些都延長(zhǎng)了封建制度的存在時(shí)間,不得不說(shuō),中國(guó)人還是很聰明的,只可惜聰明反被聰明誤。那些封建制度不那么完善的地方,會(huì)更早地發(fā)現(xiàn)封建制度的缺點(diǎn),也就更早的產(chǎn)生新的政治制度。而哲學(xué),則是新制度產(chǎn)生的基礎(chǔ),通過(guò)思辨,我們可以發(fā)現(xiàn)“‘君’其實(shí)并不那么貴,‘民’也并不是那么輕”;當(dāng)統(tǒng)治階段想要灌輸某種有利于他們統(tǒng)治的思想時(shí),思辯會(huì)幫助我們明辨是非。
事實(shí)上中國(guó)并非沒(méi)有思辯,只不過(guò)思辨的思想沒(méi)有占據(jù)統(tǒng)治地位,這一點(diǎn)一直到現(xiàn)在也是這樣,不然為什么會(huì)有人刪除我們的帖子呢?:P
posted @ 2007-10-15 15:31 安帛偉 閱讀(267) | 評(píng)論 (0)編輯 收藏

僅列出標(biāo)題  下一頁(yè)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久免费观看| 精品96久久久久久中文字幕无| 亚洲盗摄视频| 在线成人国产| 欧美国产精品久久| 亚洲午夜国产一区99re久久| 久久精品视频在线播放| 伊大人香蕉综合8在线视| 欧美aaaaaaaa牛牛影院| 99re66热这里只有精品3直播| 亚洲欧美日本在线| 激情丁香综合| 欧美日韩美女在线观看| 亚洲欧美另类在线观看| 嫩草国产精品入口| 亚洲视频一区在线| 国内精品久久久久久久97牛牛| 鲁鲁狠狠狠7777一区二区| 99国产精品视频免费观看| 欧美综合国产精品久久丁香| 亚洲三级毛片| 国产欧美日韩综合一区在线观看| 蜜臀av性久久久久蜜臀aⅴ| 亚洲毛片在线| 免费成人在线视频网站| 亚洲系列中文字幕| 1024成人网色www| 国产精品久久久久7777婷婷| 美女图片一区二区| 亚洲欧美日韩精品久久亚洲区| 亚洲电影观看| 久久久精品tv| 亚洲自拍16p| 亚洲精品1区2区| 国产亚洲成av人在线观看导航 | 欧美系列亚洲系列| 久久久中精品2020中文| 99国产一区二区三精品乱码| 男女精品视频| 欧美在线视频免费播放| 一区二区三区视频在线看| 激情成人av| 国产精品视频精品视频| 欧美日韩三级在线| 欧美α欧美αv大片| 欧美影视一区| 亚洲欧美日韩国产| 夜夜嗨av一区二区三区网页 | 欧美午夜片在线观看| 噜噜噜91成人网| 久久精品国产免费看久久精品| 亚洲美女视频在线免费观看| 欧美激情二区三区| 欧美不卡视频一区| 久久综合五月天婷婷伊人| 久久精品亚洲热| 午夜日韩激情| 亚洲欧美视频在线观看视频| 在线视频欧美一区| 99视频精品全部免费在线| 亚洲全黄一级网站| 亚洲国产一区二区在线| 亚洲电影免费| 亚洲欧洲综合另类在线| 亚洲国产经典视频| 亚洲国产欧美日韩精品| 亚洲国产黄色| 亚洲国产日韩欧美在线动漫| 在线精品一区| 亚洲福利视频专区| 亚洲国产婷婷香蕉久久久久久| 在线成人黄色| 亚洲精品小视频| 99在线观看免费视频精品观看| 91久久线看在观草草青青| 亚洲国产精品专区久久| 亚洲欧洲在线免费| 亚洲美女在线看| 中文在线资源观看网站视频免费不卡 | 久久久精品国产免费观看同学| 午夜精品www| 午夜精品福利一区二区三区av | 亚洲日本视频| 亚洲精品日日夜夜| 夜夜狂射影院欧美极品| 亚洲午夜女主播在线直播| 亚洲一级片在线观看| 午夜精品在线观看| 久久久噜噜噜久久| 欧美激情2020午夜免费观看| 欧美日韩国产探花| 国产乱码精品一区二区三区av| 国产精品有限公司| 在线观看亚洲a| 日韩亚洲国产精品| 午夜精品视频在线观看一区二区 | 正在播放亚洲一区| 欧美伊人久久| 免费观看成人www动漫视频| 欧美精品乱人伦久久久久久| 欧美日韩视频| 国产亚洲欧洲一区高清在线观看| 在线观看日韩av电影| 一本在线高清不卡dvd | 一区二区三区 在线观看视| 午夜精品久久久| 久久一区二区三区国产精品| 欧美精品日韩| 国产亚洲精品aa| 日韩一区二区福利| 欧美在线中文字幕| 91久久国产综合久久| 一区二区三区精品国产| 久久男女视频| 国产精品剧情在线亚洲| 伊人色综合久久天天| 亚洲在线1234| 欧美成va人片在线观看| 亚洲免费婷婷| 欧美精品九九| 精品成人a区在线观看| 亚洲一区二区三区国产| 欧美高清一区| 欧美一区二区三区免费看| 欧美欧美天天天天操| 一区二区三区在线免费视频| 亚洲欧美伊人| 亚洲美女视频在线观看| 久久久久久久久久久久久女国产乱| 欧美色播在线播放| 亚洲精品乱码久久久久久按摩观| 久久国产日本精品| 中文一区字幕| 欧美片网站免费| 亚洲国产精品一区二区久| 久久久.com| 亚洲男人的天堂在线观看| 欧美精品一区二区三区蜜桃| 一区二区亚洲| 久久精品国产v日韩v亚洲| 国产精品99久久99久久久二8 | 国产午夜精品久久久久久免费视| 日韩亚洲欧美一区二区三区| 欧美v亚洲v综合ⅴ国产v| 一区二区三区精品视频| 欧美精品一区三区| 最近中文字幕日韩精品 | 夜夜嗨av一区二区三区网站四季av | 国产精品高清在线| 一区二区三区高清在线| 亚洲第一成人在线| 免费一区视频| 亚洲国产日韩欧美在线动漫| 免费国产一区二区| 久久精品夜色噜噜亚洲a∨| 国产亚洲观看| 久久久久久亚洲精品不卡4k岛国| 亚洲一二三区在线| 国产精品视频yy9099| 亚洲欧美国产另类| 一区二区三区精品视频在线观看| 欧美日韩亚洲一区二区三区在线观看 | 欧美日本乱大交xxxxx| 日韩亚洲国产精品| 亚洲精品国产系列| 欧美日韩国产页| 中日韩美女免费视频网站在线观看| 亚洲精品乱码久久久久久黑人| 欧美片网站免费| 亚洲图片在线观看| 亚洲视频在线观看视频| 国产欧美日韩亚洲| 久久综合久久久| 免费在线看一区| 亚洲美女网站| 亚洲一区999| 狠狠色综合网| 麻豆成人在线| 欧美激情一区二区三区成人| 99视频日韩| 亚洲自拍高清| 一区二区三区中文在线观看| 亚洲电影免费观看高清完整版在线| 欧美成人精品| 亚洲调教视频在线观看| 亚洲一级特黄| 激情小说亚洲一区| 亚洲人成人99网站| 国产精品尤物| 亚洲大胆在线| 国产精品美女久久久浪潮软件| 久久久久久久网| 欧美激情精品久久久久久免费印度| 99国内精品久久| 亚洲自拍偷拍一区| 亚洲国产一二三| 亚洲一区二区三区四区在线观看| 国产一区二区三区久久悠悠色av| 欧美国产一区二区三区激情无套| 欧美视频在线观看视频极品|