2012-11-15 53 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