> ==>發信人: 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