2012-03-19 60 views
0

我是新来的C++,所以我有种consfused 我想要做这样的事情:问题的初始向量

`

int max = 30; 

    class MyClass{ 
    vector<int> data(max); 
    }; 

,但它不工作,因为它是不承认“最大”是我刚刚初始化的那个int。 ,所以我更改为:

class MyClass{ 
    MyClass(); 
    int max; 
    vector<int> data(max); 
    } 
MyClass::MyClass(){ 
    max = 40;} 

不工作,除非我初始化构造函数中的载体,但我不知道正确的sintax。

我该如何做这项工作?我只需要初始化“max”,然后将其用作矢量的初始大小。

+0

嗯....也许最有效的方式让你学习C++,就是坐好几个小时的书,通过一些简单的例子。 – 2012-03-19 22:59:48

+0

这是一个大学作业。老师在学习C++的第一周要求它 – 2012-03-19 23:01:32

+5

老师禁止书吗?我认为*阅读*不会构成某种道德违规。 – 2012-03-19 23:03:26

回答

1

你的教授/老师应该告诉你初始化列表。语法看起来像这样:

class MyClass { 
    std::vector<int> data; 
public: 
    MyClass(int max) : data(max) { } 
}; 
+0

+1为更快:D – 2012-03-19 23:06:57

+0

谢谢,但在这种情况下,我在哪里初始化“max”? – 2012-03-20 01:30:49

+0

当您创建一个MyClass对象。想让'data'以一个固定的大小开始,你可以直接通过它,例如:MyClass():data(40){}' – 2012-03-20 01:49:18