亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 我不用“OIOIC對象模型” [打印本頁]

作者: yuanchengjun    時間: 2007-09-13 09:40
標題: 我不用“OIOIC對象模型”
1,面向?qū)ο笫且环N效果,或者說是一種模式。
C語言可以實現(xiàn),但是麻煩。
如果用C語言做面向?qū)ο蟮男Ч,不如使用C++,那樣,就由編譯器來實現(xiàn)這個效果。

2,OIOIC對象模型
敢問作者以下效果實現(xiàn)了么?
a,多態(tài)。
C++虛函數(shù)的效果。Java也有此效果。區(qū)別是C++需要寫virtual修飾,Java不寫就有這個效果。
這個最重要,比如文件、socket等,都看作文件,都可以通過write這個函數(shù)完成寫動作,上層就不用管這個對象怎么實現(xiàn),怎么繼承,調(diào)用write就行了。

b,C++虛繼承的效果,我不清楚這個叫什么,但我知道有個效果,而且也比較重要。我沒有調(diào)查過Java有沒有效果。
這個也重要,當要設(shè)計接口類的時候,當菱形繼承的時候,

c,要說C語言中的繼承,我更接受以下這種繼承:
struct A {
...
};

struct B {
struct A a;
...
};

3,寫不了操作系統(tǒng)的吧,
因為調(diào)用了別的函數(shù),比如free;
先有操作系統(tǒng),后有庫函數(shù);
linux內(nèi)核一樣,不能調(diào)用標準庫函數(shù)的。

4,當追求簡單,好用。
太復(fù)雜,不愿意看完。

5,
建議作者學習一下 inside c++ object modul,多學習一下。
技術(shù)不是用來秀的,是用來解決問題的。
另外,鼓勵一下,

[ 本帖最后由 yuanchengjun 于 2007-9-13 09:46 編輯 ]
作者: converse    時間: 2007-09-13 09:43
我覺得為這么個東西去爭議用不用是愚蠢的...
作者: yuanchengjun    時間: 2007-09-13 09:52
原帖由 converse 于 2007-9-13 09:43 發(fā)表
我覺得為這么個東西去爭議用不用是愚蠢的...


呵呵,對。

但做總比不做好,只不過想起剛開始的滿腔熱血。

標準么,第一是數(shù)據(jù),不會是某種語言,或者這種語言的一種使用方式。
作者: doctorjxd    時間: 2007-09-13 09:54
原帖由 yuanchengjun 于 2007-9-13 09:40 發(fā)表

5,
建議作者學習一下 inside c++ object model,多學習一下。
技術(shù)不是用來秀的,是用來解決問題的。


作者是應(yīng)該看看這本書。
在不用Virtual的情況下,C++代碼的效率基本和C是一樣的。
作者: baohuaihuai    時間: 2007-09-13 10:21
OIOIC的作者應(yīng)該好好看看The Design and Evolution of C++,以及THE C++ PROGRAMMING LANGUAGE,看看自己跟BS的思想差距有多大.
作者: langue    時間: 2007-09-13 10:32
原帖由 converse 于 2007-9-13 09:43 發(fā)表
我覺得為這么個東西去爭議用不用是愚蠢的...


我認為,這不僅是愚蠢的行為,而且具有相當?shù)倪M步意義
作者: ypxing    時間: 2007-09-13 10:33
詭異的評價

原帖由 langue 于 2007-9-13 10:32 發(fā)表


我認為,這不僅是愚蠢的行為,而且具有相當?shù)倪M步意義

作者: Pervise    時間: 2007-09-13 23:48
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: cjaizss    時間: 2007-09-14 00:54
第一條我是絕對支持的,C就是C,要搞什么面向?qū)ο螅紫饶氵x擇C就是錯誤。
作者: M.I.X    時間: 2007-09-14 08:51
個人認為,真正有生命力的編程語言只有兩種 ---- C和匯編語言,C++以及其他目前流行的語言都將淪為軟件歷史的階段性產(chǎn)物。OIOIC是我用純C語言設(shè)計的全新而優(yōu)秀的面向?qū)ο髾C制,OIOIC的誕生使C++淪為垃圾!


按此觀點,用腳趾都能推斷,OIOIC也只是個階段性的產(chǎn)物,
C的存在使OIOIC從一開始誕生就是個垃圾。
作者: yuanchengjun    時間: 2007-09-14 09:27
原帖由 Pervise 于 2007-9-13 23:48 發(fā)表


1. 面向?qū)ο笫潜匦璧,然而,C++徹頭徹尾地糟!
2. C++能做的OIOIC都能做,但是,很多OIOIC能做的C++卻無法辦到。
3. OIOIC是對象接口,接口的具體實現(xiàn)由對象自己決定。
4. 你還不知道什么簡單、什么好用呀。
5. 呵呵,勸你趕快丟棄C++,別再以這個垃圾為食了。


1,請問C++糟在哪里?C++確實有糟糕的地方,但是你調(diào)查過沒有?你能說出幾條?很樂意討論C++之糟糕。
2,你用OIOIC做一個東西,我一定能夠用C++做一個,代碼比你的簡單,性能比你的好。
3,接口首選是數(shù)據(jù)。其次才是函數(shù)接口或者類接口。定義同樣的接口,我用C++定義的肯定比你的簡單,不容易出錯。

yy沒用,拿出證據(jù)來;或者較量一下子,你用你OIOIC,我用C++。
作者: Pervise    時間: 2007-09-14 14:55
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: ypxing    時間: 2007-09-14 15:11
除了O12, 其他的O都一樣???

原帖由 Pervise 于 2007-9-14 14:55 發(fā)表



好呀,芽子!我們先來個簡單的,下面的繼承關(guān)系是OIOIC代碼包里的一個小示例,你用C++也實現(xiàn)一個,創(chuàng)建O12對象,然后把代碼貼出來,讓大哥教教你。

                          O
                    ...

作者: ypxing    時間: 2007-09-14 15:27
標題: to Pervise
>>1. 面向?qū)ο笫潜匦璧模欢,C++徹頭徹尾地糟!
"C++徹頭徹尾地糟", 這個沒有覺出來

>>2. C++能做的OIOIC都能做,但是,很多OIOIC能做的C++卻無法辦到。
對于前半句,作者應(yīng)該給一個理論上的形式證明,不然的話是沒人相信的
對于后半句,如果"OIOIC能做的C++卻無法辦到"的都是一些沒有用的事情
那么,辦不辦到都是無所謂的事情

>>3. OIOIC是對象接口,接口的具體實現(xiàn)由對象自己決定。
不知道作者具體是指什么.
按我的理解的話,C++,Java也能做到,只是
這樣做的好處是什么?是不是需要都這樣做?何時需要這樣做?

>>4. 你還不知道什么簡單、什么好用呀。
感覺用C++的概念很清楚,還比較好用


>>5. 呵呵,勸你趕快丟棄C++,別再以這個垃圾為食了。
只會C++的話可能可以找到工作
只會OIOIC的話,很可能找不到工作
作者: yuanchengjun    時間: 2007-09-14 16:46
原帖由 Pervise 于 2007-9-14 14:55 發(fā)表



好呀,芽子!我們先來個簡單的,下面的繼承關(guān)系是OIOIC代碼包里的一個小示例,你用C++也實現(xiàn)一個,創(chuàng)建O12對象,然后把代碼貼出來,讓大哥教教你。

                          O
                    ...


需求太籠統(tǒng)。

如果任意一個父類實例在對象中不唯一的,即通過另一條繼承鏈還可以得到該父類另一個實例,C++中直接繼承就可以了。
如果父類實例在對象中是唯一的,從任何一條繼承鏈得到的該父類實例是同一個,在C++中繼承時加virtual。


1,你應(yīng)該貼出每一個類的定義代碼。
2,如果用到非C標準庫,應(yīng)當帖出全部源代碼。
3,如果說是繼承關(guān)系,那么應(yīng)當有證明體現(xiàn)繼承關(guān)系的事例代碼。至少包括父類子類的類型轉(zhuǎn)換,以及多態(tài)性質(zhì)。
4,你應(yīng)當指出哪一點C++做不到你能做到,你當有實例代碼證明。
5,你應(yīng)當指出哪一點C++會做得糟糕不如你的,你當有實例代碼證明。

好了, 請一定貼出 C++做不到的 和 做得糟糕 的證明的代碼,我等著出糗,不要讓我失望。

[ 本帖最后由 yuanchengjun 于 2007-9-14 17:00 編輯 ]
作者: swordfish.cn    時間: 2007-09-14 16:56
又是強帖啊,留名。
作者: Pervise    時間: 2007-09-15 14:40
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: converse    時間: 2007-09-15 14:45
原帖由 Pervise 于 2007-9-15 14:40 發(fā)表


你這個SB已經(jīng)出糗了!
“不要讓我失望”,你希望什么? You pig,你也有希望?


拍照.
作者: jigloo    時間: 2007-09-15 15:00
Pervise大大,我挺你。以前我不懂事,說過OIOIC的壞話,現(xiàn)在我后悔不已。雖然我還沒有完全理解OIOIC,但是我相信杰出的OIOIC必然會和設(shè)計模式一樣成為編程史上的里程碑!
作者: jigloo    時間: 2007-09-15 15:05
我已經(jīng)將Pervise大大的blog加入了我的收藏夾,以后我要天天學習,天天進步,爭取早一天搞懂OIOIC。
作者: ypxing    時間: 2007-09-15 16:25
好東西不是靠罵人罵出來的.
還是好好回答大家的疑問吧

原帖由 Pervise 于 2007-9-15 14:40 發(fā)表


你這個SB已經(jīng)出糗了!
“不要讓我失望”,你希望什么? You pig,你也有希望?

作者: Pervise    時間: 2007-09-16 10:24
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: ypxing    時間: 2007-09-16 10:53
1. 13樓的問題你根本就沒有回答
2. 不服的太多了,只是他們懶的搭理你
3. 在要求別人貼代碼之前,你需要貼出自己的代碼,因為這是在驗證你的東西(雖然這也說明不了什么問題)
你需要證明你的有用,而不是證明別人的沒有用.
因為別人的沒有用也不能證明你的有用,這個邏輯你應(yīng)該明白吧
另外,在向別人推薦你的東西的時候,你要擺正你的位置,你是生產(chǎn)者,我們是消費者,
難道需要消費者去證明生成者的東西好用嗎???

原帖由 Pervise 于 2007-9-16 10:24 發(fā)表


還有不服的,你也去把 #12樓 的題做一下。

作者: swordfish.cn    時間: 2007-09-16 11:05
還有不服的,你也去把 #12樓 的題做一下

我對樓主佩服得五體投地了。
在他的眼里,做不出來就證明你沒有資格評價 OIOIC 。

因此,樓主永遠是正確的。我們都是 pig 。
真誠地希望有一天你能讓我們這些 pig 真正地明白你的偉大成果。

[ 本帖最后由 swordfish.cn 于 2007-9-16 11:07 編輯 ]
作者: Pervise    時間: 2007-09-16 12:20
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: pilgrim_kevin    時間: 2007-09-16 12:22
原帖由 Pervise 于 2007-9-15 14:40 發(fā)表


你這個SB已經(jīng)出糗了!
“不要讓我失望”,你希望什么? You pig,你也有希望?












!。。。。。。。。。。。。
作者: ypxing    時間: 2007-09-16 12:49
12#那也叫題?
看來你對C++了解的很一般呀

本來還對你有抱一絲希望...
算了

原帖由 Pervise 于 2007-9-16 12:20 發(fā)表


你把#12樓的題做完后,再來說話。

作者: Pervise    時間: 2007-09-16 13:13
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: flw    時間: 2007-09-16 13:16
原帖由 Pervise 于 2007-9-16 13:13 發(fā)表

呵呵,大家注意了,ypxing說的是這個意思:
你對C++太了解了,你知道C++是實現(xiàn)不了這么復(fù)雜的繼承關(guān)系的,這不是難為C++么?,C++真是個垃圾,還是OIOIC厲害喲。

兄弟,一路走好……

[ 本帖最后由 flw 于 2007-9-16 16:27 編輯 ]
作者: zhujiang73    時間: 2007-09-16 13:24
標題: 回復(fù) #28 Pervise 的帖子
原帖由 Pervise 于 2007-9-16 13:13 發(fā)表


呵呵,大家注意了,ypxing說的是這個意思:
你對C++太了解了,你知道C++是實現(xiàn)不了這么復(fù)雜的繼承關(guān)系的,這不是難為C++么?,C++真是個垃圾,還是OIOIC厲害喲。:


http://www.gtkmm.org/docs/gtkmm-2.4/docs/reference/html/classGtk_1_1ComboBoxEntry.html

gtkmm is the official C++ interface for the popular GUI library GTK+.    當然不是我寫的,不過經(jīng)常用到。

[ 本帖最后由 zhujiang73 于 2007-9-16 13:29 編輯 ]

classGtk_1_1ComboBoxEntry__inherit__graph.png (4.16 KB, 下載次數(shù): 17)

classGtk_1_1ComboBoxEntry__inherit__graph.png

作者: Pervise    時間: 2007-09-16 14:32
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: yuanchengjun    時間: 2007-09-16 17:00
12樓的題,
一是題意不明確,二是此題對c++來說比較簡單,
如果出題人認為這個題,c++做不到,或者做得糟糕,我也不說什么了,

oioic,看了頭文件的一部分,認為至多是一種糟糕的模式,談不上語言。
可能作者想用c做一些效果,可能“繼承”是之一,
作者大可以自己用,這是你的自由,

有想法是好事情,但是想法要經(jīng)得起考驗。
要超過別人先要向別人學習,明白別人為什么優(yōu)秀,推薦一本書 <<unix編程藝術(shù)>>。

[ 本帖最后由 yuanchengjun 于 2007-9-16 17:04 編輯 ]
作者: Pervise    時間: 2007-09-16 17:38
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: 思一克    時間: 2007-09-16 17:56
To Pervise,

你有些過分了. 如果不好好討論問題, 只知道說不好聽的話, 你離被封ID不遠了.

你那東西不是語言級別上的繼承. 和C++語言無法比較,雖然可以從表面上(通過數(shù)據(jù)結(jié)構(gòu))達到某些繼承的效果.
從你在CU上給出的代碼和定義文件, 實在是亂七八糟. 顯示你的編程也沒有什么訓練.

還有你也不知道操作系統(tǒng)OS到底是什么. 所以才有你的"新一代OS"的說法.
你也不知道多少C++(雖然我也一樣). 否則你不會叫喊C++是垃圾要用一個根本不是任何語言的東西來代替C++.

C++不適合于編寫LINUX那樣的操作系統(tǒng). 但適合于其它的項目.

你如果還想繼續(xù)宣揚你的庫, 那么不要罵人, 而是從用你的庫實現(xiàn)的最簡單的小的實例程序來演示給別人看開始.

還有,你為了證明你的東西好, 是從你自己演示給別人開始. 而不是讓別人演示什么你來說不好. 這個關(guān)系和道理你應(yīng)該明白.




原帖由 Pervise 于 2007-9-16 14:32 發(fā)表


貓眼,不懂就別瞎湊熱鬧!睜你那對貓眼好好看看,你貼出來的那個東西和#12樓題是一個檔次嗎!!

作者: Pervise    時間: 2007-09-16 18:41
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: 思一克    時間: 2007-09-16 18:49
說C++是垃圾,那么你給出一個你用OIOIC實現(xiàn)的最小的HELLO WORLD程序(有一個繼承,有一個運算符RELOAD,再打印個標識就可以了). 讓大家看到底C++程序是垃圾,還是你的代碼是垃圾.

不是很簡單嗎.
作者: Pervise    時間: 2007-09-16 18:56
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: Pervise    時間: 2007-09-16 19:01
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: 思一克    時間: 2007-09-16 19:05
請你給出你的一個HELLO WORD實例, 來比較C++的垃圾程序問題. 看你的如何不垃圾好嗎?



原帖由 思一克 于 2007-9-16 18:49 發(fā)表
說C++是垃圾,那么你給出一個你用OIOIC實現(xiàn)的最小的HELLO WORLD程序(有一個繼承,有一個運算符RELOAD,再打印個標識就可以了). 讓大家看到底C++程序是垃圾,還是你的代碼是垃圾.

不是很簡單嗎.

作者: Pervise    時間: 2007-09-16 19:11
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: Pervise    時間: 2007-09-16 19:17
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: 思一克    時間: 2007-09-16 19:20
那個沒有人會看.

真正的C++實例一點小程序就可以.
如果為了一個幾行的HELLO WORLD就需要一個TAR包,那你說誰是垃圾?

原帖由 Pervise 于 2007-9-16 19:17 發(fā)表
軟件包里的 ex1~ex3 已經(jīng)是非常好的實例了。

作者: Pervise    時間: 2007-09-16 19:28
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: cugb_cat    時間: 2007-09-16 19:31
OIOIC頂多算是個庫,不能和C++相比,雖然我也不喜歡C++,但Pervise說的太離譜了也。
作者: mingyanguo    時間: 2007-09-16 19:34
原帖由 Pervise 于 2007-9-16 18:41 發(fā)表



>你那東西不是語言級別上的繼承. 和C++語言無法比較,雖然可以從表面上(通過數(shù)據(jù)結(jié)構(gòu))達到某些繼承的效果.
“語言級別上的繼承”很好么?如果專門設(shè)計一個自動支持OIOIC的C編譯器,那不就是語言級別上的繼 ...

C++可以寫OS,L4:: 系列幾乎都是C++寫的, MacOSX的IOKit也是C++的,
C++的問題在于復(fù)雜而且合格的C++程序員太少。
當然,我對C++也沒多少好感,因為我看不懂
你的代碼我看了,恕我愚鈍,我更看不懂。
作者: 思一克    時間: 2007-09-16 19:34
C++, C都不是為做HELLO WORLD的.
但能做復(fù)雜的,簡單的就更可以做.
如果簡單的根本做不了簡單,那么做復(fù)雜的多半也是不行的.


原帖由 Pervise 于 2007-9-16 19:28 發(fā)表


如果只是做類似“Hello,World!”這樣簡單的小程序,就沒必要用OIOIC技術(shù)了。通用插件接口、多重繼承、多線程訪問控制等,才是OIOIC的優(yōu)勢。

作者: Pervise    時間: 2007-09-16 19:35
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: Pervise    時間: 2007-09-16 19:48
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: 思一克    時間: 2007-09-16 19:49
你編好的讓別人調(diào)用的不是宏就是庫. 無論做不做成.a

你那不就是個(SOURCE)庫嗎? 外加MACRO.
如果庫都夠不上(比如需要使用者往你的程序中再添加東西),那更是一團亂麻了.

還是要你給出最簡單的例子完成繼承,重載和打印. 你是怕給出了會造更大的批駁?


原帖由 Pervise 于 2007-9-16 19:35 發(fā)表

此言差矣!OIOIC不是庫,別以為編譯出了OIOIC.a文件,就認為OIOIC是個庫。OIOIC由兩個文件構(gòu)成:OIOIC.h和OIOIC.c。

作者: cugb_cat    時間: 2007-09-16 19:53
原帖由 Pervise 于 2007-9-16 19:48 發(fā)表


難得大家聚一起討論,很高興。

OIOIC是專門為C而設(shè)計的OO機制,或者說是為C填補了OO的空白。

實在想不出,除了庫,這個OIOIC還能算什么?為C設(shè)計的OO機制,那怎么使用呢?還是要作者給出個例子吧。
也是那句話,給出個hello world事例吧,不管好也不管壞,就算是為了讓別人用你的庫,也總該給個簡單的例子以讓讀者入門吧?
作者: Pervise    時間: 2007-09-16 20:06
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: Pervise    時間: 2007-09-16 20:14
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: 思一克    時間: 2007-09-16 20:15
看來,你那東西確實是一團亂麻.
別人不需要了解你的那個OIOIC. 但是別人懂的最簡單的HELLO WORLD中的繼承,多態(tài),和打印.
如同別人使用C++,完全不需要了解C++編譯和C++庫,也會給出最簡單的實例程序.

沒有人在你給出最簡單的示范之前去研究你的可能是根本不值得一看的具體實現(xiàn).




原帖由 Pervise 于 2007-9-16 20:06 發(fā)表


“還是要你給出最簡單的例子完成繼承,重載和打印. 你是怕給出了會造更大的批駁?”,呵呵,如此,我豈不是在做自欺欺人無聊之事!看來短時間內(nèi)大家完全理解OIOIC是不可能了,這樣吧,過段時間我把OIOIC及Oic ...

作者: Pervise    時間: 2007-09-16 20:41
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: cugb_cat    時間: 2007-09-16 20:46
原帖由 Pervise 于 2007-9-16 20:41 發(fā)表



做個我要求的OIOIC示范(當然不是“Hello,world!”之類簡單的東西)的工作還沒列入我的日程。你可以保留自己現(xiàn)在的看法。

那你現(xiàn)在來推廣你的東西是不合時宜的,在沒有完整的實例來說明問題時,強力推廣只會讓別人非常的反感。
作者: 思一克    時間: 2007-09-16 21:01
不用那么復(fù)雜.不需要展示你的庫的全部功能.

你先展示一個最簡單的有繼承,多態(tài)的HELLO WORLD就可以了.

原帖由 Pervise 于 2007-9-16 20:41 發(fā)表



做個我要求的OIOIC示范(當然不是“Hello,world!”之類簡單的東西)的工作還沒列入我的日程。你可以保留自己現(xiàn)在的看法。

作者: Pervise    時間: 2007-09-16 21:15
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: Pervise    時間: 2007-09-16 21:28
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: yuanchengjun    時間: 2007-09-16 22:33
作為一種興趣愛好,無可厚非,至少有想法。
但是想要成為經(jīng)典,路還很長很長。

睡了。

[ 本帖最后由 yuanchengjun 于 2007-9-16 22:36 編輯 ]
作者: pilgrim_kevin    時間: 2007-09-17 00:37
關(guān)注了這么久,只能說越來越覺得不知所謂了。

大家別浪費時間了吧。Pervise老兄也省點口水,這幫看客都比較愚魯,花點時間做點實際東西給我們看看或許更有用
作者: zhujiang73    時間: 2007-09-17 14:14
標題: 回復(fù) #37 Pervise 的帖子
原帖由 Pervise 于 2007-9-16 18:56 發(fā)表
大家千萬不要以為我為了宣傳自己的OIOIC,而極力貶低C++。我用C++多年,深感其甚為不爽,特別在多重繼承方面,于是就有在C語言上實現(xiàn)通用OO的想法,也就了有今天的OIOIC。


>> 我用C++多年,深感其甚為不爽,特別在多重繼承方面。

多重繼承是比較麻煩,使用時要確保你知道自己在做什么。 不過一般的項目都不需要如 OIOIC 般復(fù)雜的多重繼承,請問您開發(fā)哪方面的程序需要如此復(fù)雜的多重繼承?
作者: Pervise    時間: 2007-09-17 15:24
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: 思一克    時間: 2007-09-17 15:33
你先來一個例子說明

    0
    |
    |
    O1

看你那個庫是真的能完成C++的繼承還是假的。不用那么復(fù)雜的。如果你那東西是真的,完成個這個對你應(yīng)該很簡單, 是嗎?


原帖由 Pervise 于 2007-9-17 15:24 發(fā)表


自然界不會有那么復(fù)雜的繼承關(guān)系 ---- 僥幸心理!
O12復(fù)雜,還有更復(fù)雜的,看O23:

                          O
                     /    |    \
                   /      |     \
            ...

作者: cugb_cat    時間: 2007-09-17 15:42
原帖由 Pervise 于 2007-9-17 15:24 發(fā)表


自然界不會有那么復(fù)雜的繼承關(guān)系 ---- 僥幸心理!
O12復(fù)雜,還有更復(fù)雜的,看O23:

                          O
                     /    |    \
                   /      |     \
            ...

我想學,給個帶實例的入門教程吧。
作者: Pervise    時間: 2007-09-17 15:48
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: 思一克    時間: 2007-09-17 15:53
我為什么要看你的包?

要你給一個最簡單例子不是更好和更簡單嗎?

原帖由 Pervise 于 2007-9-17 15:48 發(fā)表


暈!我說老思同志,你到底看沒看“Oicos_v1.0.0_20070606.tar.gz”包里的代碼呀?

Cfilter對象,ex1\GO\Cfilter.c文件頭備注:

* 備    注: IQ和OQ來自EALFilter.
*
*     ...

作者: Pervise    時間: 2007-09-17 15:58
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: Pervise    時間: 2007-09-17 15:59
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: Pervise    時間: 2007-09-17 15:59
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: 思一克    時間: 2007-09-17 16:03
你無語什么。是你來SHOW給別人看的。
如同一個要向法庭出示證據(jù)的律師,必須當場出示,而不能說那個證據(jù)在家里有,那個在倉庫里,你自己找,肯定有。。。。

你把你的包中的能顯示B繼承A的貼出來不就行了。一個用你的庫完成的有繼承和多態(tài)的HELLO WORLD程序難道就那么難?


原帖由 Pervise 于 2007-9-17 15:58 發(fā)表


無語。

作者: 思一克    時間: 2007-09-17 16:09
我估計你那個庫根本實現(xiàn)不了C++的那種OBJECT定義的繼承。而是用C的多叉樹構(gòu)造的一個邏輯結(jié)構(gòu),

然后你自己就認為是繼承了。如果是這樣,用數(shù)據(jù)結(jié)構(gòu)方式可以完成非常復(fù)雜的”繼承“關(guān)系。

但愿我說的是錯的。但看你連給出一個小例子都費勁到如此程度,十分可能就是這樣。
作者: Pervise    時間: 2007-09-17 16:14
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: Pervise    時間: 2007-09-17 16:17
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: Pervise    時間: 2007-09-17 16:24
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: 思一克    時間: 2007-09-17 16:29
看懂了一點點。

還是的,你那東西根本沒有實現(xiàn)C++那樣的繼承定義。而是自己用程序調(diào)用的。

等與將C++編譯后的程序的繼承邏輯用C程序自己寫的。

有空再詳細看
作者: 思一克    時間: 2007-09-17 16:31
你狂語出的還少嗎?新一代OS,統(tǒng)一世界接口,填補空白,等。你有大無謂革命精神。

原帖由 Pervise 于 2007-9-17 16:24 發(fā)表
不是我口出狂語,C++為什么不能實現(xiàn)復(fù)雜的多重繼承,就是因為C++自身對繼承概念理解的一踏糊涂!!

作者: Pervise    時間: 2007-09-17 16:31
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: 思一克    時間: 2007-09-17 16:33
你來解釋, N1,N2的數(shù)據(jù)結(jié)構(gòu)定義在哪里?
作者: Pervise    時間: 2007-09-17 16:40
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: yuanchengjun    時間: 2007-09-17 16:41
原帖由 Pervise 于 2007-9-17 16:14 發(fā)表


Cfilter對象派生于EALFilter對象:

             O  N1 (EALFilter)
              |
             O  N2 (Cfilter

見 ex1\GO\Cfilter.c中Cfilter的CRT 函數(shù) CRT_Cfilter:

OBJECT*  CRT_Cfilte ...

C++這么寫,就可以啊,一樣的繼承。

class EALFilter
{
public:
&nbsp;&nbsp;&nbsp;&nbsp;virtual ~EALFilter(){}
};

class CFilter : public EALFilter
{
public:
&nbsp;&nbsp;&nbsp;&nbsp;virtual ~CFilter(){}
};


[ 本帖最后由 yuanchengjun 于 2007-9-17 16:44 編輯 ]
作者: Pervise    時間: 2007-09-17 16:45
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: 思一克    時間: 2007-09-17 16:46
以后不稱東西了,稱你的OI庫

原帖由 Pervise 于 2007-9-17 16:40 發(fā)表


求點事兒,以后別老是“你那東西”的,我的這個“東西”有自己的大名,叫OIOIC。

作者: Pervise    時間: 2007-09-17 16:48
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: Pervise    時間: 2007-09-17 16:50
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: 思一克    時間: 2007-09-17 16:52
看懂更多一點了。

你自己用程序創(chuàng)建繼承煉, 而語言(C++)是USER定義繼承關(guān)系,而C++給你生成程序。
有本質(zhì)的區(qū)別。

你這樣用自己代替編譯寫程序定義繼承關(guān)系,當然什么樣的都可以作到了。



原帖由 Pervise 于 2007-9-17 16:48 發(fā)表


在CRT函數(shù)內(nèi),整個IC(繼承鏈)一次性創(chuàng)建。

作者: Pervise    時間: 2007-09-17 17:19
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: 思一克    時間: 2007-09-17 17:25
不要再和C++比較了。不是一個層次上的東西比較什么。
C++那么多的功能,繼承是之一。
你可以找其它的用C實現(xiàn)OBJECT的庫比較。

你自己有思想值得鼓勵。說大話,總是“發(fā)現(xiàn)新大陸而發(fā)現(xiàn)的根本不是什么新地方” 則不好。

原帖由 Pervise 于 2007-9-17 17:19 發(fā)表


最初C++是驢騎人,然后才人騎驢。

作者: Pervise    時間: 2007-09-17 17:31
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: zhujiang73    時間: 2007-09-17 17:32
標題: 回復(fù) #81 Pervise 的帖子
原帖由 Pervise 于 2007-9-17 16:45 發(fā)表


那你用C++實現(xiàn)O12一個。


這是由于多重繼承帶來的繼承的模糊性帶來的問題,C++ 通過虛擬繼承技術(shù)來實現(xiàn)。

#include <iostream>

class O1
{
   public:  
    int  a1;   
   
};

class O2 :virtual public  O1
{
   public:
      int   a2;   

};

class O3 :virtual public O1
{
   public:
      int   a3;   

};

class O4 :virtual public O1
{
   public:
      int   a4;   

};

class O5 :virtual public O2
{
   public:
      int   a5;   
};

class O6 :virtual public O2, virtual public O3
{
   public:
      int   a6;   
};

class O7 :virtual public O3, virtual public O4
{
   public:
      int   a7;   
};

class O8 :virtual public O4
{
   public:
      int   a8;   
};

class O9 :virtual public O5, virtual public O6
{
   public:
      int   a9;   
};

class O10 :virtual public O6, virtual public O7
{
   public:
      int   a10;   
};

class O11 :virtual public O7, virtual public O8
{
   public:
      int   a11;   
};

class O12 :virtual public O9, virtual public O10, virtual public O11
{
   public:
      int   a12;   
};

int main(int argc, char *argv[])
{
    O12  *p_12;
   
    p_12 = new O12;
   
    p_12->a1 = 1;
    p_12->a2 = 2;
    p_12->a3 = 3;
    p_12->a4 = 4;
    p_12->a5 = 5;
    p_12->a6 = 6;
    p_12->a7 = 7;
    p_12->a8 = 8;
    p_12->a9 = 9;
    p_12->a10 = 10;
    p_12->a11 = 11;
    p_12->a12 = 12;
   
    std::cout << "p_12->a1 = " << p_12->a1 << std::endl;

    std::cout << "p_12->a7 = " << p_12->a7 << std::endl;

    std::cout << "p_12->a9 = " << p_12->a9 << std::endl;

    std::cout << "p_12->a12 = " << p_12->a12 << std::endl;

    delete  p_12;

    return 0;
}           

作者: Pervise    時間: 2007-09-17 17:34
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: 思一克    時間: 2007-09-17 17:36
你連個庫都沒有夠上。庫實現(xiàn)的功能是不用用戶自己用代碼寫的。而你的用。

怪不得讓你給出個小例子如此地難。
作者: Pervise    時間: 2007-09-17 17:56
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: swordfish.cn    時間: 2007-09-17 18:48
原帖由 Pervise 于 2007-9-17 17:34 發(fā)表


其它的用C實現(xiàn)的OBJECT庫也不用看了,OIOIC空前是最優(yōu)秀的。


我覺得這樣說態(tài)度不好。
沒看過就評論嗎?
我沒看過你的 OIOIC ,所以我沒有評論。
作者: yuanchengjun    時間: 2007-09-17 19:00
原帖由 Pervise 于 2007-9-17 16:45 發(fā)表


那你用C++實現(xiàn)O12一個。


看91樓,實現(xiàn)了一種效果,和我想的差不多,
還有一種效果是不加virtual,
你用oioic實現(xiàn)一下,讓我看看?

[ 本帖最后由 yuanchengjun 于 2007-9-17 19:02 編輯 ]
作者: doctorjxd    時間: 2007-09-17 20:19
樓主的OIOIC 代碼在FreeBSD下根本不能編譯通過。不是gmake, 也不是freebsd make. 不知道是什么make.
作者: doctorjxd    時間: 2007-09-17 20:22
樓主為什么不對91樓的代碼回應(yīng)?
作者: antigloss    時間: 2007-09-17 20:24
樓主有空還是學習一下 Beans 吧
http://www.72891.cn/thread-843827-1-1.html
作者: Pervise    時間: 2007-09-17 20:25
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: zhujiang73    時間: 2007-09-17 20:27
標題: 回復(fù) #98 doctorjxd 的帖子
原帖由 doctorjxd 于 2007-9-17 20:22 發(fā)表
樓主為什么不對91樓的代碼回應(yīng)?


因為 Pervise 不是本樓的業(yè)主。
作者: Pervise    時間: 2007-09-17 20:34
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2