Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

小程式,但是OO觀念不清楚.

0 views
Skip to first unread message

公園號酸梅湯

unread,
Apr 2, 2003, 2:01:00 AM4/2/03
to
【 在 meowh...@bbs.kimo.com.tw (CBT) 的大作中提到: 】
: 這程式根本就不是 OO
: 你只是把 struct 換個名字叫 class 罷了...
: 在 OO 裏, 除了很少數的特定情況外, 有個重要的基本原則
: "資料必需隱藏在物件之中", 就是物件中的 data 一定要是 private 的啦,
: 如果要把你這個程式重寫, 讓它比較有 OO 的感覺,
: 可是試試下面的方法
: (1) 把 ClassData 寫成 ADT, 讓它能自己作 I/O(operator overloading)
: 初使化並取得時間(放在 constructor), 比大小(operator overloading)

我看不出adt有任何必要對內建運算子做overloading,
一個好的interface實作與文件能夠讓client programmer使用無礙不就行了?
尤其當你必需猜測一個內建運算子對特定的component會產生什麼作用時
實在是一件讓人討厭的事.

--
suave mari magna, memento quia pulvis.

[m [1;33m※來源 : [1;36m 台北科大計中紅樓資訊站 [1;35mredbbs.cc.ntut.edu.tw
[1;32m※FROM : [1;37m211.74.132.244 [m

CBT

unread,
Apr 2, 2003, 12:51:11 PM4/2/03
to
※ 引述《Jamez...@redbbs.cc.ntut.edu.tw (公園號酸梅湯)》之銘言:

> 我看不出adt有任何必要對內建運算子做overloading,
> 一個好的interface實作與文件能夠讓client programmer使用無礙不就行了?
> 尤其當你必需猜測一個內建運算子對特定的component會產生什麼作用時
> 實在是一件讓人討厭的事.

同一句話還給你 "一個好的 overloading 實作與文件能夠讓
client programmer 使用無礙不就行了?" :p
你當然可以討厭它, 這是個人喜好問題, 沒有什麼好不好的問題
就像是 Java 把這個拿掉, 但 C# 又把它給挖出來用一樣,

但是 cin >> ClassData 或是 if ( ClassData[i] > ClassData[j] )
對我來說比 ClassData.input(cin) 或是
if ( ClassData[i].lessThan( ClassData[j] ) 方便 :p

ps: operator overloading 當初就是為了 ADT 設計的喔...
--
[0m [1;33m※ Origin: [36mYahoo!奇摩 大摩域 [37m<telnet://bbs.kimo.com.tw> [m
[1;35m◆ From: [1;32m1cust31.tnt1.troy.oh.da.uu.net [m

0 new messages