2010-10-06 32 views
0

該陣列必須是堆棧,我需要修改這些元素。以下是我有:在C++中如何將靜態數組作爲參數傳遞給對象,並在那裏修改原始數組?

Class Me { 
private: 
    int *_array; 
    void run(){ 
     for (int i = 0 ; i < 10; ++i) { 
      _array[i] += 100; 
     } 
    } 
public: 
    Me(int array[]) { 
     _array = array; 
    } 
}; 

這是主要的:

int array[10] = {0, 1,2,3,4,5,6,7,8,9}; 
    Me m(array); 
    m.run(); 
    for (int i = 0 ; i < 10; ++i) { 
     cout << array[i] << " "; 
    } 
    cout << endl; 

我想陣傳球被引用完成的,所以不管我在run()一樣,在主)的陣列(應隨身攜帶結果也是如此,但我顯然是錯的。我錯過了什麼暗示?謝謝!

+2

首先,這段代碼甚至不會輕微編譯(例如,你聲明'Me :: run'是私有的)。請張貼實際的代碼。 – 2010-10-06 22:30:12

+0

它是'class',而不是'Class'。 – GManNickG 2010-10-06 22:34:58

+1

你有代碼庫中的#define public private和#define private public和#define Class class嗎? – Donotalo 2010-10-06 22:59:20

回答

3

當我解決您的代碼,以便它實際上編譯,我得到的輸出

100 101 102 103 104 105 106 107 108 109 

這是不是你的預期?

+0

是的,是的。我的代碼中有一些錯誤,我以爲我忘記了如何使用數組參數。你的回答只是幫助我意識到我做了其他錯誤。謝謝! – derrdji 2010-10-06 23:57:46

相關問題