• <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 
            无码国产69精品久久久久网站| 色综合久久最新中文字幕| AV无码久久久久不卡网站下载| 久久久久青草线蕉综合超碰| 久久人妻少妇嫩草AV蜜桃| 久久精品国产精品亜洲毛片 | 99久久精品这里只有精品| 久久精品毛片免费观看| 99re久久精品国产首页2020| 99久久免费国产特黄| 欧美精品一本久久男人的天堂| 久久综合久久综合久久综合| 亚洲欧美日韩精品久久| 久久国产成人亚洲精品影院| 欧美精品福利视频一区二区三区久久久精品| 国产成人无码精品久久久免费| 久久亚洲天堂| 久久亚洲私人国产精品| 99久久人妻无码精品系列| 国产精品美女久久久免费| 日日狠狠久久偷偷色综合0| 亚洲综合熟女久久久30p| 久久久久99精品成人片试看| 久久午夜电影网| 久久亚洲AV无码精品色午夜麻豆| 色妞色综合久久夜夜| 国产999精品久久久久久| 久久亚洲熟女cc98cm| 久久精品国产一区二区三区日韩| 久久精品国产精品亚洲艾草网美妙| 99久久精品免费看国产一区二区三区| 色欲久久久天天天综合网精品| segui久久国产精品| 亚洲精品午夜国产va久久| 潮喷大喷水系列无码久久精品| 久久福利片| 波多野结衣中文字幕久久| 无码精品久久一区二区三区 | 久久最近最新中文字幕大全| 日本国产精品久久| 久久久久久狠狠丁香|