我把 vector <int> asd(1); 这段代码放在函数里,没有问题,放在类的头文件里,就会报错 error C2059: syntax error : 'constant' ,请问这是什么回事,如果我一定要放在类的头文件里怎么编?

解决方案 »

  1.   

    你是想构造有一个int元素的vector么?
    类成员的初始化,应该放在构造函数的成员初始化列表中。举个例子:
    //a.h
    #include <vector>
    using std::vector;class a
    {
    public:
        vector <int> asd ;
        
        // constructor : 注意成员初始化列表
        a(): asd(1) {} ;
    }
      

  2.   

    首先vector <int> asd(1); 是定义一个长度为1的vector,就相当于int asd[1];而不是把asd初始化为1,不知道楼主想要的是什么。
    如果定义一个长度为1的vector,2楼的正解,但里面asd初始的值都会是0。
      

  3.   

    asd(1)进行了初始化,头文件里是不能做的,这是规则,就像你不能在头文件里int i=1;这样定义初始化一样,而你只能ini i;一个道理