《算法導論》說用于表示數組或對象的變量被看作是指向表示或對象數據的一個指針,對于某個對象x的所有域f,賦值y<--x,就是f[y]=f[x]。若f[x]<--3,則不僅是f[x]=3,同時f[y]=3,換言之在賦值y<--x后x,y指向同一個對象。
#include<iostream>
using namespace std;
int main(){
int a=3,b=0;
b=a;
a++;
cout<<a<<'\t'<<b<<endl;
return(0);
}//輸出的是4 3。他們并不是表示數組或對象的變量。

#include<iostream>
using namespace std;
class object{
public:
    int var;
    object(int value){var=value;}
};
int main(){
    object a(3),b(0);
    b=a;
    a.var=4;
    cout<<a.var<<'\t'<<b.var<<endl;
    return(0);
}//輸出4 3與說法矛盾

#include<iostream>
using namespace std;
int main(){
    int a[3],b[3];
    a[0]=1;
    a[1]=2;
    a[2]=3;
    b=a;//數組不能賦值
    for(int i=0;i<3;++i)
    cout<<a[i]<<'\t'<<b[i]<<endl;
    return(0);
}

那么請問這兩個例子應該如何舉
回復人: 阿榮 (狀元)  2007-1-24 17:52:12
它說得那些只是在某些特定環境下的理論效果,并不能在所有語言中應用.它這里所說的概念,基本上對應C++的指針,和你理解的不一樣
回復人: 阿榮 (狀元)  2007-1-24 17:53:04
個人感覺,他對對象的定義對于C++而言是錯誤的
回復人: 周星星 (榜眼)  2007-1-24 17:55:37
也許說引用更恰當
 回復人: 阿榮 (狀元)  2007-1-24 17:59:24
實際上無論引用和指針都無法嚴格和他對應.我不清楚講算法的為什么來搞這種定義?完全無法和所有語言對應
回復人: szhoftuncun (書童)  2007-1-24 18:23:49
Re:也許說引用更恰當
舉個例子,我不太明白你們說什么?
回復人: szhoftuncun (書童)  2007-1-24 20:02:05
Re:變量名的問題
參數用值傳遞的方式傳給過程:過程接收參數的副本,若它對某個參數賦值,則這個過程對調用過程(1.這里是指調用過程的那個過程嗎?我想是的,也應該是這樣的)是不可見的。當傳遞一個對象時,只時拷貝指向對象的指針(2.不解決上面變量名的問題,那這里又有問題了),而不拷貝其各個域(3.這個域指的是什么?)。如:x<--y對調用過程時不可見的,但賦值f[x]<--3是可見的。
回復人: 阿榮 (狀元)  2007-1-24 23:35:03
這么晦澀而且也不怎么通用的書還是不要這么認真的讀了
回復人: 阿榮 (狀元)  2007-1-24 23:36:28
這種晦澀的理論不適于學習語言,你不要指望能用什么例子來描述你說的話,它上面的話不完全適用于C++
回復人: 阿榮 (狀元)  2007-1-24 23:38:02
個人建議你立刻換書,
回復人: hpho (秀才)  2007-1-24 23:53:10
若用JAVA的話是說得通的.
C++是分對象實體和指向對象的指針.所以會有深淺拷貝.
回復人: 周星星 (榜眼)  2007-1-25 9:19:59
因為JAVA中一切都是指針
回復人: Iforgot (秀才)  2007-1-25 9:21:22
不能說指針,最好說引用,或引用和指針的結合體。——java里關于垃圾收集機制里有一堆關于它的引用的概念。
回復人: 周星星 (榜眼)  2007-1-25 9:27:29
說引用也說不過去,反正就那個意思
回復人: szhoftuncun (書童)  2007-1-25 9:29:20
Re:這種晦澀的理論不適于學習語言,你不要指望能用什么例子來描述你說的話,它上面的話不完全適用于C++
呵呵,不是為了學語言,就是為了學算法,只不過想用語言來驗證一下,多謝各位賜教。分就給星星吧
回復人: 阿榮 (狀元)  2007-1-25 10:04:47
你給了?
回復人: szhoftuncun (書童)  2007-1-25 10:13:05
Re:你給了?
這個給分系統不太會用,vchelp網的比較清楚,呵呵,不知道給誰
參數用值傳遞的方式傳給過程:過程接收參數的副本,若它對某個參數賦值,則這個過程對調用過程(1.這里是指調用過程的那個過程嗎?我想是的,也應該是這樣的)是不可見的。當傳遞一個對象時,只時拷貝指向對象的指針(2.不解決上面變量名的問題,那這里又有問題了),而不拷貝其各個域(3.這個域指的是什么?)。如:x<--y對調用過程時不可見的,但賦值f[x]<--3是可見的。