敢問閣下用的集成開發(fā)環(huán)境是哪個? 剛接觸linux開發(fā), 不知道哪個用起來爽一點(diǎn):)
re: 答學(xué)弟問之變量與內(nèi)存問題 SmartPtr 2007-09-13 09:05
我的理解是這樣的:
1. 靜態(tài)存儲區(qū)又分為靜態(tài)初始化存儲區(qū)和靜態(tài)未初始化存儲區(qū),正如你說的,前者對應(yīng).data段,后者對應(yīng)bss段, 但是不論在哪個段,都要占程序內(nèi)存空間的吧
2. const變量應(yīng)該只是編譯器語法上的一個限制,數(shù)據(jù)會在哪個存儲區(qū)并不由其決定, 事實(shí)上, 繞過C++語法,改變const值是很容易的:
const int ci = 10;
__asm
{
mov eax, 100;
mov ci, eax;
}
re: MD5算法的C++實(shí)現(xiàn) SmartPtr 2007-09-10 08:27
.NET中產(chǎn)生HashCode用的貌似也是MD5算法???
re: 裝了個ubuntu... SmartPtr 2007-09-07 10:48
默認(rèn)的不能,但我不知道是否有相關(guān)軟件支持
@boilerroom
貌似不行,不知道有沒有朋友試過這個。。。
re: Autodesk面試技術(shù)題解答 SmartPtr 2007-08-20 08:46
@linwen
謝謝提醒:)
struct和class的默認(rèn)繼承屬性的確也是區(qū)別, 對于18題的狀態(tài)搜索, 我想應(yīng)該用A*算法比較合適
re: Autodesk面試技術(shù)題解答 SmartPtr 2007-08-18 18:53
謝謝 騰 的建議,63,65已作修改,第5點(diǎn)的話,我在VS2005上是不行的,如下:
template<struct T>
class A
{
public:
T t;
};
re: 引領(lǐng)Boost(一)(開篇) SmartPtr 2007-08-17 13:03
sorry, 我是說如果:) 所以現(xiàn)在沒有。當(dāng)然遇到了大家可以一起討論:)
re: 引領(lǐng)Boost(一)(開篇) SmartPtr 2007-08-16 06:11
不知樓主讀boost了解程度如何, 最近看了一點(diǎn),如果碰到一些源碼實(shí)現(xiàn)的問題,可以想你討教。。。。
re: 關(guān)于人人相輕 SmartPtr 2007-08-13 12:46
@小艾
說的有道理!
但即使是為了自己的利益而“輕視”, 也算修養(yǎng)不夠吧, 所謂損人利己,大不可取
re: 【ZT】王朔 :中國人到了美國之后都變好了 SmartPtr 2007-08-11 19:25
我沒有經(jīng)歷過, 但我愿意相信, 他們的文化氛圍,全民素質(zhì)要比我們好很多
re: 關(guān)于人人相輕 SmartPtr 2007-08-11 18:32
@AXTSHMF
恕我直言, 你所說的人之常情, 是指的什么人的常情呢, 人人生而平等,為何輕視卻正常了呢。 我想那篇文章中作者將這條放在第一, 可能就是大家都覺得理所當(dāng)然, 所以是最嚴(yán)重的吧
re: 學(xué)習(xí) STL ,BOOST SmartPtr 2007-08-11 14:32
其實(shí)我也沒有研讀過boost的源碼, 因?yàn)橄鄬τ赟TL, 它太大了, 也更復(fù)雜,自己也曾下載想好好讀讀,但最后還是沒有足夠的時間與精力去看。 引用網(wǎng)上一段介紹:
boost是一個準(zhǔn)標(biāo)準(zhǔn)庫,相當(dāng)于STL的延續(xù)和擴(kuò)充,它的設(shè)計(jì)理念和STL比較接近,都
是利用泛型讓復(fù)用達(dá)到最大化。不過對比STL,boost更加實(shí)用。 STL集中在算法部
分,而boost包含了不少工具類,可以完成比較具體的工作。
boost主要包含一下幾個大類:字符串及文本處理、容器、迭代子(Iterator)、算法
、函數(shù)對象和高階編程、泛型編程、模板元編程、預(yù)處理元編程、并發(fā)編程、數(shù)學(xué)相
關(guān)、糾錯和測試、數(shù)據(jù)結(jié)構(gòu)、輸入/輸出、跨語言支持、內(nèi)存相關(guān)、語法分析、雜項(xiàng)
。 有一些庫是跨類別包含的,就是既屬于這個類別又屬于那個類別。
re: 學(xué)習(xí) STL ,BOOST SmartPtr 2007-08-11 13:33
按照你所說的“有時感覺自己寫的代碼完全是一個C版的”, 我想現(xiàn)在去讀 STL或boost都不太適合, 如果你對模板技術(shù)感興趣, 建議你先熟悉一下STL的使用(參考<<C++標(biāo)準(zhǔn)模板庫>>), 然后再研究STL的源碼(參考侯捷<<STL源碼剖析>>), 我想說的是參考書是很重要的幫助, 如果自己一頭撞進(jìn)去,恐怕過程會很曲折, 甚至?xí)型痉艞?/div>
re: 對研發(fā)部的思考 SmartPtr 2007-08-11 13:28
樓主在浦東, 上海一些優(yōu)秀的IT企業(yè)基本都在那邊吧, 可以考慮一下。
其實(shí)我也有想搬去浦東的想法
re: DLL導(dǎo)出類 SmartPtr 2007-08-11 13:15
@filebat
兩個好問題, 期待樓主解答
re: 我對軟件優(yōu)化的一些想法 SmartPtr 2007-08-11 00:58
@羅賓李
1. 當(dāng)然,對于特定于語言的優(yōu)化,C++比Java應(yīng)該要好一些, 畢竟C++是一個更底層,可控性更強(qiáng)的語言。 但是對于workflow上的優(yōu)化, 應(yīng)該是語言無關(guān)的。我們所做的性能的提升,大部分是靠對workflow的優(yōu)化實(shí)現(xiàn)的。
2. 關(guān)于map使用, 謝謝你的評論, 你說的很對。 這個例子為了簡化,我沒有給出足夠的context. 我補(bǔ)充一些吧:
1) 該對象是一個API, 一個第三方庫,我們沒有權(quán)限去修改
2) 假設(shè)這個對象是一條樣條曲線, 該第三方庫沒有在該對象中加入一個長度屬性,而是在每次需要時去計(jì)算,從數(shù)學(xué)角度,我想應(yīng)該也有其道理。(這樣我就能保證每次取到的都是最新的)
重要的是,我們都認(rèn)同cache是性能優(yōu)化的利器, 的確,設(shè)計(jì)好的cache數(shù)據(jù)結(jié)構(gòu)的確很重要,當(dāng)然,這都是和特定需求緊密結(jié)合在一起的。
re: 偽句柄是什么 SmartPtr 2007-08-10 23:36
請問前面兩位是 ”托“ 嗎, 呵呵, 開個玩笑。。。。。
re: C++ 類成員的CALLBACK SmartPtr 2007-08-10 23:27
總結(jié)的不錯, 比較巧妙的例子
re: 輸出函數(shù)不應(yīng)拋異常 SmartPtr 2007-08-10 23:20
也就是說異常不能拋出其所在模塊了。。。 在公司討論的時候談到過這個問題, 不知樓主可否展開來談一下。。。
re: 我對軟件優(yōu)化的一些想法 SmartPtr 2007-08-10 23:03
@aGAric
的確, 但這些應(yīng)該是一些比較COMMON的想法, 也就是說我們在做優(yōu)化的時候會去想到, 并可能有用的想法, 不知道你沒有其他類似的方法, 大家可以一起討論討論:)
re: 我對軟件優(yōu)化的一些想法 SmartPtr 2007-08-10 22:43
因?yàn)樗惴ㄉ系膬?yōu)化一般都是為大家所知的, 所以在開發(fā)過程中也會特別注意, 因此這方面的優(yōu)化并不是我們的側(cè)重點(diǎn)
re: 基本概念:函數(shù)的傳值(2) SmartPtr 2007-08-08 23:31
不明白樓主的理解方式:)
從C++語言層面上來理解,告訴你傳值就是copy一個參數(shù)進(jìn)去, 函數(shù)里對它所做的一切與原來的無關(guān),這就清楚的不能再清楚了。 但是你不明白, 卻要用反編譯后看匯編代碼才明白, 這和我的理解方式剛好相反, 我覺得你用匯編去驗(yàn)證到是可以理解。。。
re: File I/O SmartPtr 2007-08-07 11:48
我想這個, VS應(yīng)該提供了相應(yīng)的API來操作其文件,這應(yīng)該是最便捷,準(zhǔn)確的方法吧。
我想C++中實(shí)現(xiàn)COM就是這么做的
re: 一條語句中的邏輯 SmartPtr 2007-08-06 08:31
@windywinter
expression1 && expression2;
只有在Expression為true的情況下,才會繼續(xù)執(zhí)行expression2,這也就相當(dāng)于條件判斷語句
if(expression1) expression2;
這就是利用了其短路求值的功能
re: 一條語句中的邏輯 SmartPtr 2007-08-05 17:09
我想題意應(yīng)該就是允許遞歸調(diào)用,不然難度貌似很高的
re: C++類模板的三種特化 SmartPtr 2007-07-20 01:03
template<class T>
class Compare<T*>
{
public:
static bool IsEqual(const T* lh, const T* rh)
{
return Compare<T>::IsEqual(*lh, *rh);
}
};
是模板特化, 你當(dāng)然需要在之前定義其泛化版本
CRTP = the Curiously Recurring Template Pattern, 這里只是其應(yīng)用之一, 它還可以用于模擬虛函數(shù)等.
關(guān)于Singleton的線程安全,雖然我們可以寫一些代碼來做到(或看起來做到)線程安全,但是由于現(xiàn)在C++內(nèi)存模型的先天不足, 事實(shí)是無法做到。
re: 導(dǎo)出類使用值得注意的一個問題 SmartPtr 2007-07-18 08:36
這中錯誤一不小心就會出現(xiàn),而且很難調(diào),
re: QA和DEV哪個更需要你的腦力? SmartPtr 2007-07-17 21:19
其實(shí)我覺得樓主把意思?xì)w納一下貼出來會比較好。。。。
re: C++模板類的三種特化 SmartPtr 2007-07-16 21:26
to longshanks
本文的目的其實(shí)并不是試圖對C++的模板特化做一下全面的分類, 而是針對自己所遇到的,覺得比較有意思的,對于一個模板參數(shù)所能夠做到的特化,并不想對C++中的全特化,偏特化有所混淆。當(dāng)然,之間也得到了大家不少有價值的看法。尤其對于您所舉的這個例子:
template<typename T>
class Y;
template<typename R, typename P1, typename P2>
class Y<R (P1, P2)> {...};//針對帶兩個參數(shù),有返回值的函數(shù)類型特化
是我之前所沒有想到的,我只考慮了數(shù)據(jù)類型并沒有考慮到函數(shù)類型,但是我想?yún)⒖坚槍?shù)據(jù)類型所做的分類,可以得到函數(shù)類型對應(yīng)平行的分類。比如對于這個例子,應(yīng)該可以理解為第三種:特化為另外一個類(函數(shù))模板。
PS:
謝謝關(guān)于模板類,類模板概念的澄清,原文已修改
re: VS9中C++少得可憐的更新 SmartPtr 2007-07-12 23:25
用VS, 還沒用過CLR, 只用過標(biāo)準(zhǔn)C++
To aders06:
你是說template method嗎, 這么做有什么好處?
re: 如何判斷一個COM對象是否可用 SmartPtr 2007-07-09 19:54
To SuperPlyeR:
不僅是沒有注冊造成的, 應(yīng)該說是某些異常操作使得該COM組件不可用, 可以是沒有注冊,也可以是注冊后注冊信息被誤操作覆蓋, 也可以是該DLL被刪除, 總之, 在系統(tǒng)運(yùn)行之前先檢測一下這些東西是否都是ready的, 如果不是, 那就不要進(jìn)去先。
之前有朋友說直接創(chuàng)建該COM對象來判斷, 但我覺得創(chuàng)建組件只是去做判斷,不太可取
re: 讀《人月神話》 SmartPtr 2007-07-08 16:40
"老久沒有更新BLOG了,結(jié)果排名之類的反而又升了一點(diǎn)····無語"
***************************
這可能是cppblog不夠火的原因, 沒有比較多的新人, 新文章涌現(xiàn)出來。。。對cppblog應(yīng)該說是很可惜的一件事:)
re: 如何判斷一個COM對象是否可用 SmartPtr 2007-07-07 20:17
to 萬連文
可否解釋一下, 實(shí)在是看不明白。。。。。
COM容器的使用, COleControlContainer和COleControlSite, 受教了。記得以前面試的時候被問到過COM容器,當(dāng)時就說不出個所以然來
re: 如何判斷一個COM對象是否可用 SmartPtr 2007-07-06 21:44
假設(shè)講我的COM組件在系統(tǒng)運(yùn)行一段時間后,在某個操作中才會被創(chuàng)建出來,而此時如果此對象無法創(chuàng)建,系統(tǒng)的任務(wù)就無法完成,此時用戶就要問了:“早干嘛去了,先讓我瞎忙活那么長時間, 不行早說嘛”, 呵呵,開個玩笑, 其實(shí)這就是我們同事遇到的現(xiàn)實(shí)問題。 但如果我在一開始就試圖創(chuàng)建全部的COM對象而只為了判斷其是否可創(chuàng)建,似乎消耗大了點(diǎn),邏輯上也不太合理。
re: 一段代碼的幾種寫法-怎么樣寫好的代碼 SmartPtr 2007-07-06 16:11
我有兩點(diǎn)想法, 一是在性能不是關(guān)鍵因素的程序中代碼的可讀性重于效率;二是代碼效率優(yōu)化應(yīng)該針對關(guān)鍵的瓶頸。 當(dāng)然, 博主的一些思路也是值得討論的
與成員函數(shù)所調(diào)用的對象(也就是 this 所指向的對象)相關(guān)的隱式參數(shù)永遠(yuǎn)也沒有資格進(jìn)行隱式轉(zhuǎn)換
**********************************************
這個是必然的, 因?yàn)榫幾g器根本無法確定你要轉(zhuǎn)到什么類型。
不好意思, 對表達(dá)式模板不太清楚, 可否介紹一下先?
為什么C實(shí)現(xiàn)會比這個快呢, 他們的區(qū)別在哪里, 是什么影響了其效率?