2012-11-15 106 views
-2

考慮以下幾點:矢量引用類

class a 
{ 
    int p; 
    a(int x) 
    { 
    p=x; 
} 
} 

class b 
{ vector<a> var; 
    b(*type*a l) 
    { 
    new var; 
    var(l); 
    } 
} 

基本上,我嘗試創建一個類(「A」)的載體,並從另一個類調用它。幾個問題 -

1)在b類中,'new var'的位置是否正確?我應該在構造函數之外聲明它,還是在構造函數中定義vector var時?每種情況都意味着什麼。

2)在main中,我想聲明一個類b的向量。我將如何做到這一點?

確實

Vector<b> ex = new Vector<b> (100,5); sound right? 

即100是大小和5的量,它應該增加它達到滿容量?

我可以不指定大小並通過addElement()繼續添加嗎? - 矢量類型會自動增加大小嗎? 3)因此,要訪問b的第i個元素和b的成員變量'var'的第j個元素, 我將如何指定它? 這是對的嗎?

ex[i].var.get[j] ? 

我剛剛開始與所有這一切,所以忍受着我。我是一個真正的新手。

+1

我不是downvoter,但是 - 你應該下載Java編譯器(或者更好的是,一個IDE,比如Eclipse),買一本關於這門語言的書,並通過它的方式努力。 – ruakh

+0

1)學會正確縮進你的代碼。 2)通過實際編寫和編譯來學習,而不僅僅是頭腦風暴。如果您實際上已經閱讀了一些介紹性的資料,並且通過仔細閱讀API,大部分問題都可以得到解答。 –

+0

對不起。我剛剛開始並願意學習。我正在使用一個IDE,每一行不斷提出一個錯誤。我剛剛開始使用Java和vector,並且在嘗試引用帶有向量的類時遇到了問題。這是問題的關鍵。 – Floose

回答

1

首先,如果您指的是java.util.Vector,請不要使用它,除非您知道自己在做什麼。改爲使用java.util.ArrayList

下面顯示瞭如何聲明和初始化包含類型爲a的對象的ArrayList。

class b { 

    private ArrayList<a> var = new ArrayList<a>(); // declare & intialize like this 

    b(a l) { 
     var.add(l); 
    } 
} 

的ArrayLists的ArrayList ...

ArrayList<ArrayList<Foo>> foo = new ArrayList<ArrayList<Foo>>(); 

// initialize foo 

foo.get(0).get(2); // like foo[0][2] if foo were an array 
+0

謝謝!但不應該是var.add(l)? – Floose

+0

是的,修正了這個問題。 – Bill