• <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>

            Haste Makes Waste.

            Thoughts are but dreams till their effects be tried. -- William Shakespeare

            C++博客 首頁 新隨筆 聯系 聚合 管理
              0 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
            共2頁: 1 2 
            (deep-reverse 1)運行失敗
            @陳梓瀚(vczh)
            用不變量來表示狀態碉堡了,呵呵,我以前怎么沒想到。這樣能區分POD和class。云風說沒有狀態估計說的是POD。
            我覺得contract并不僅僅指能做什么事情,還包括做事情前后的狀態應該是什么樣子
            typedef int(__stdcall*f[10])(int(*a)(int, int));
            這個不是:“f是一個數組,數組返回了一個函數指針,……”。數組不會返回什么東西的啊。我覺得用typedef來解釋更清楚。上面的typedef等價于:
            typedef int (*A)(int, int);
            typedef int (__stdcall*F)(A);
            F[10];
            RET XXX::FUNC(...) const;和
            RET XXX::FUNC(...);
            也構成重載
            社會化大生產的方式決定了不可能把每個人都發揮到極致的,而是選取每個人的特長來進行組合。

            很多好的軟件,不是天才的設計,便是經驗老道的設計。初出茅廬的,可能還在技術細節層面糾纏呢。不妨問自己:我是天才嗎?我經驗足夠嗎?

            “別人把軟件設計好,詳細到偽碼級別了,我只是來做最低級的實現而已。”樓主意識到這個并開始有想法是好的,只不過別太著急了。

            最后,兩個聰明人合作會使事情變糟,那是因為他們不夠聰明,或者說光有智商沒有情商。解雇之。寧要情商,不要智商。古往今來成功人士,智商高的有多少不好說,但情商絕對都是咣咣的。
            re: In the USA - 4[未登錄] raof01 2008-12-23 22:35
            謝謝了先
            re: In the USA - 4[未登錄] raof01 2008-12-23 22:34
            我試了下練習1.6,好像永遠都算不完,為什么呢?練習1.7呢?我沒有思路。
            第一,是bitwise initialization,member-wise copy。——這話是Inside C++ Object Model里說的,我也認同這種觀點。
            第四,不會遞歸調用基類CCF,但會遞歸調用個成員的CCF。——越俎代庖,做個補充:)
            @jmchxy
            按成員遞歸復制。不是按位復制。
            其他同意你的觀點。
            @浪跡天涯
            我們已經被大環境綁架了。
            標題很吸引人,內容很讓人失望。
            @匿名
            每個人成功的標準都不一樣。
            趁著年輕努力工作學習。

            大體上很贊同博主。這些是任何一個有責任感的人都必須做到的。
            BS的TC++PL
            我也覺得codeblocks好用。如果在linux上,vim+plugins會是相當好的選擇,anjuta也不錯。
            當然,如果在win上開發app或者做prototype,還是vs比較好,畢竟是RAD工具嘛。
            如果不做RAD,自己編寫makefile和腳本來管理src樹、進行開發能極大提高效率
            reinterpret_cast:重新解析位模式bit pattern。
            如:
            TYPE * t = new TYPE();
            unsigned long ul = reinterpret_cast<unsigned long>(t);
            delete t;
            我也沒看出問題。
            re: read/write(1) -- read[未登錄] raof01 2008-09-12 13:09
            為你的努力鼓掌。
            但是……我覺得這些沒有必要翻譯過來。一個合格的程序員,一定要feel comfortable with English。全世界都是如此
            強烈反對盜版
            強烈反對M$
            強烈盼望人民收入水平大幅提高
            強列盼望加大打擊盜版的力度
            靠,別誤會了,只是說這篇應當參考TCPL,寫得簡潔點。
            對圖形學沒概念。飄過
            @David Lee
            類里面的函數是成員函數,不可能是全局的。

            static成員函數不是全局的,它的scope是類,在全局范圍內可以訪問,但不是全局函數。因為它操作的是該類相關的東西。類里面是不會有global scope的東西的。c++中訪問全局函數應該使用::。

            內存上應該一樣(not very sure),都是獨立于對象存在的。區別是static成員函數沒有隱含的this參數而普通成員函數有。
            @sPhinX
            M$的東西與GCC有差異。各自實現了標準的大部分,有自己的擴展。對于標準中“it depends”的東西就形態各異了。

            另外,const的保證是由編譯器來保證的,你看我畫的那個圖。
            就算構造const對象,也需要修改這個內存啊。對象構造完成const才能起作用,否則怎么構造/初始化?
            第三條結論怎么得出的?

            分析得不錯,就是有點麻煩。TCPL里指針講得比較好,簡明扼要。
            代碼沒問題。M$對C++做了修改,這是不兼容標準的地方
            re: 宏和inline的區別[未登錄] raof01 2008-09-01 09:48
            宏是簡單的字符串替換。
            inline是將代碼插入到調用點——并非原封不動插入。compiler有權決定是否真的inline。
            re: 車通 面試題[未登錄] raof01 2008-08-29 11:23
            malloc后沒有free。破題
            這家公司也不咋地
            第二題是悖論。類里聲明的函數有全局的?新鮮。賜教?
            re: 莫名科技面試題[未登錄] raof01 2008-08-29 10:01
            結果 4 11 100 400 4 3 4 6 8 4 4
            這個與機器有關。考題應當避免任何與特定平臺相關的東西,除非考的就是某平臺。

            char->int轉換是promotion,無需static_cast。reinterpret_cast用于重新解釋(reinterpret)bit pattern。

            只有第10題稱得上夠勁——描述不清楚啊,哈哈:
            1、內核與用戶之間拷貝?
            2、src和dest有重疊?
            3、考慮效率?
            4、訪問權限?
            5、src和dest均非NULL但是否可訪問?
            ……

            啥公司啊,一看題就知道不咋地。
            其實當把const int X = 10;放到頭文件中作為全局變量,這是X就有了internal linkage,可以將其作為常量使用,T a[x];不再非法。
            還應當考慮對象切片以及包含虛擬的情況。
            http://blog.chinaunix.net/u/12783/showart_476048.html
            兄弟你把IDE里的概念和C++本身的概念混淆了。查一下C++標準,就沒有AppWizard。

            @白金漢宮
            老譚居然還會c++?肯定是垃圾。C++最好的入門書是BS的TC++PL。

            const:表明該對象是read only的,也可以用來表示常量,但不是所有的編譯器都支持這個特性。這也就是為什么const int X = 10; T a[X];在使用某些編譯器編譯時是非法的。

            * 用來保護對象不受修改。
            * const成員函數,只能訪問const成員——當然不包括logical constness。
            * const參數,表明該參數不可被函數修改,一般作用于T*或者T&。
            * T * const和T const *(const T*)的區別。從右向左讀就能明白區別。傳參時,T * const與T*等價。還有const T * const,表明該對象以及其指向的對象都是read only的。
            * const返回值:返回的對象是readonly的。
            Base* b = (Base*)100;
            Derived* d1 = reinterpret_cast( b );
            Derived* d2 = static_cast( b );
            這三句有問題。至少g++無法編譯。
            對于obj1來說,通過ptr修改obj2并沒有修改obj1所引用的內存區。這個obj1的bit pattern不變。
            昨天看見你給我的評論,今天就看見這個了。:)
            這里并不是打破了bitwise constness。如圖:
            obj1
             ------
            | data1|
            |------|      obj2
            |ptr---+--> -----------------
             ------    |Can be modified  |
                       |without breaking |
                       |bitwise constness|
                        -----------------
            看來我的理解也不夠深刻……
            能否操作臨時變量,就看你有沒有辦法獲取他的地址。
            @&lt;a href=http://minidx.com&gt;minidxer&lt;/a&gt;
            臨時變量是可以操作的
            如:
            int main()
            {
            long l = 2222;
            char const &s = l;
            int *p = reinterpret_cast<int*>(const_cast<char *>(&s));
            *p = 88;
            printf("%ld, %c\n", l, s);
            return 0;
            }
            考慮這種情況:
            void foo()
            {
            int const a = 10;
            }

            如果const默認是static,那么上面的函數應該等價于:
            void foo()
            {
            static int a = 10;
            }

            可能嗎?
            考慮這種情況:
            void foo()
            {
            int const a = 10;
            a++;
            }

            如果const默認是static,那么上面的函數應該等價于:
            void foo()
            {
            static int a = 10;
            a++;
            }

            可能嗎?
            @金慶
            c++標準哪里有?把原話貼過來啊。
            (*it).m;
            it->m;

            (*it)->m;
            相同嗎?
            OMG!看了這么多留言才知道,只有kevin lynx和博主——當然也包括本人——知道討論的是什么問題。

            IMHO,其他人該好好鞏固一下基礎了。
            @komac
            你沒有理解博主的意思。
            @abettor,@theanswerzju
            IMHO,你們對于變量的定義理解存在問題。參考“C/C++:如何理解復雜的聲明”(http://blog.chinaunix.net/u/12783/showart_378340.html)。

            變量定義一次就分配一次存儲。多次包含global.h,則多次為STR_TEST分配空間。編譯器正常是因為分開編譯。鏈接異常是因為有多個存儲叫做STR_TEST,通過STR_TEST引用存儲存在二義性。

            而且inclusion guard是防止一個h被重復包含,而不是在一個cpp里重復包含。最基礎的書籍關于這點也是很清楚的。

            與inclusion guard無關。
            const 變量默認是 static 的?誰說的?

            multiple definition并不是由其constness不正確而導致的。
            char * const p = "....";(p為常量,存放在常量表中,鏈接時沒問題)或者static char * p = "....";(限制p的作用域為編譯單元,但p可修改)即可,因為字符串本身是字面常量,不能修改。

            因此,你這里的錯誤是由于全局變量使用錯誤導致的,與const無關。按照你最初的定義,在多個cpp中包含該global.h就相當于多次定義了STR_TEST。因此鏈接時會出錯。

            const char STR_TEST[] = "Hello world!";這里有個拷貝操作,相當于多用了一倍的空間。

            建議你看看“C++:一些基礎知識”(http://blog.chinaunix.net/u/12783/showart_548200.html)3和4條
            共2頁: 1 2 
            久久99久久无码毛片一区二区| 人妻精品久久无码区| 国产精品综合久久第一页| 久久国产免费| 亚洲综合熟女久久久30p| 久久99精品久久久久久hb无码| 精品精品国产自在久久高清| 国产毛片久久久久久国产毛片| 久久精品无码一区二区app| 中文无码久久精品| 亚洲一本综合久久| 亚洲天堂久久久| 九九久久精品无码专区| 欧美丰满熟妇BBB久久久| 国产福利电影一区二区三区久久久久成人精品综合 | 国产精品久久精品| 久久久久女教师免费一区| 亚洲精品无码久久久久AV麻豆| 色婷婷久久综合中文久久蜜桃av| 国产午夜精品久久久久九九电影| 亚洲欧洲日产国码无码久久99| 国产精品青草久久久久福利99| 伊人久久大香线蕉综合影院首页 | 亚洲愉拍99热成人精品热久久| 国产成人久久精品麻豆一区| 狠狠88综合久久久久综合网| 日韩久久久久久中文人妻| 久久久久久久免费视频| 久久久WWW成人免费毛片| 国产欧美一区二区久久| 久久久久亚洲av无码专区| 久久久精品国产| 一个色综合久久| 人人狠狠综合88综合久久| 久久久久久国产精品美女| 国产成人久久久精品二区三区| 777久久精品一区二区三区无码| 97久久精品午夜一区二区| 国产精品久久久久影院色| 国产99精品久久| 99久久99久久|