精華區beta Programming 關於我們 聯絡資訊
> ==>發信人: sealoe@kkcity.com.tw (), 信區: programming > class A > { > int a,b,c; > int a1,b1,c1; > fun_a(){ > a = b+c; //快指令 > } > fun_b(){ > a = b*c; //慢的指令 > } > fun_c(){ > a1 = b1+c1; > } > } > main(){ > A B; > B.b = 1; > B.c = 2; > B.fun_a(); > B.fun_b(); > B.fun_c(); > } > 如果是OO並不知道最後a 是哪個 fun_a 或是fun_b的結果 出來不可與其的答案 > 但是因為目前的程式編譯器幫你處理好 > 所以會先執行fun_a 在循序的執行fun_b > a就會是fun_b的結果 > 也就是編譯器不幫你處理的話 可能因為OO非循序的特性出錯 > 不知道我理解的對不對? B 是使用 Class A 的 instance object , 本身是個把相關事物封裝在一起的 object , 要 invoke 她, 她本身沒有同步支援就不該同時接受多個 message 同時處理. 即使發出 invoke 的 main() 可以不等 B.fun_a() 完成回覆就 "同 時" 再發出 B.fun_b() , 因為同一 object 的同一入口就不會允許包在同一 object 內的相關的事物同時做. 假如情況是 main(){ A B1, B2; B1.b = 1; B1.c = 2; B2.b = 1; B2.c = 2; B1.fun_a(); B2.fun_b(); } 這個 B1.fun_a() 與 B2.fun_b() 因屬不同的 Instance Object , 各自擁有 各別的 data space , 兩者可以平行是明顯的. -- ◎ Origin: 中央松濤站□bbs.csie.ncu.edu.tw From: 140.115.6.234