re: 繼承!如何繼承? TheAnswer 2008-08-29 21:54
傳A的引用作為參數(shù)
const char * const STR_TEST = "Hello world!";
前面那個(gè)const可以去掉的 效果一樣的
re: VC6.0 vs VS2005 TheAnswer 2008-04-18 10:30
@yanvenhom
建議你使用機(jī)器語(yǔ)言編程 才能接觸到編程的本質(zhì)
re: const的作用 TheAnswer 2008-01-14 05:44
隨便說(shuō)幾點(diǎn)。
1.const是C++中的關(guān)鍵字,C中的const是鑒戒C++定義的關(guān)鍵字,但是C中的const與C++比退化的很厲害,幾乎就是沒(méi)啥用。
2.從語(yǔ)義上來(lái)講,函數(shù)參數(shù)中的指針不應(yīng)該用const修飾,既然用指針傳遞,就應(yīng)該意味著參數(shù)會(huì)被修改,如果函數(shù)體不修改參數(shù),應(yīng)該用const引用或者傳值。
3.函數(shù)返回值的時(shí)候,需要區(qū)分是否為內(nèi)置類(lèi)型,內(nèi)置類(lèi)型的返回值是一個(gè)右值,可以保證其不會(huì)被修改,但是返回自定義類(lèi)型的時(shí)候,如果不加const,函數(shù)返回值是可以被賦值的,雖然不符合常理,但是語(yǔ)法上是沒(méi)問(wèn)題的。
例如 A func(int);
func(3) = A();
編譯完全可以通過(guò),你可以試一下。 :)
C++中左值的含義是編譯時(shí)可知,關(guān)注的是對(duì)象的地址。
re: C++ 心得 TheAnswer 2008-01-11 18:23
hoho 都是從Scott Meyers的書(shū)上援引的吧
static const double ASPECT_RATIO = 1.653;
這句中的static是多余的,const默認(rèn)就是內(nèi)部鏈接的 :)
hoho 這個(gè)話題我也寫(xiě)過(guò)一篇
http://www.shnenglu.com/theanswerzju/archive/2007/12/24/39461.html
隱式類(lèi)型轉(zhuǎn)換并非拷貝構(gòu)造函數(shù)造成的,而是單參數(shù)的構(gòu)造函數(shù)造成的
re: 堆和棧的區(qū)別 TheAnswer 2007-12-31 15:47
部分細(xì)節(jié)不夠嚴(yán)謹(jǐn),總體不錯(cuò)
new小內(nèi)存,系統(tǒng)一般會(huì)圓整為2的冪來(lái)分配,內(nèi)存占用多些很正常的。
各成員變量存放的起始地址相對(duì)于結(jié)構(gòu)的起始地址的偏移量必須為該變量的類(lèi)型所占用的字節(jié)數(shù)的倍數(shù)。各成員變量在存放的時(shí)候根據(jù)在結(jié)構(gòu)中出現(xiàn)的順序依次申請(qǐng)空間,同時(shí)按照上面的對(duì)齊方式調(diào)整位置,空缺的字節(jié)自動(dòng)填充。同時(shí)為了確保結(jié)構(gòu)的大小為結(jié)構(gòu)的字節(jié)邊界數(shù)(即該結(jié)構(gòu)中占用最大空間的類(lèi)型所占用的字節(jié)數(shù))的倍數(shù),所以在為最后一個(gè)成員變量申請(qǐng)空間后,還會(huì)根據(jù)需要自動(dòng)填充空缺的字節(jié)。
這樣不是已經(jīng)很清楚了嗎,不用寫(xiě)這么長(zhǎng)吧。