C++ 使用类向量显示内容。Vector.size()在不在构造函数中时变为0

C++ 使用类向量显示内容。Vector.size()在不在构造函数中时变为0,c++,class,vector,C++,Class,Vector,因此,我试图制作一个程序,存储用户输入的多项式作为向量,然后我的程序将允许用户使用重载运算符对这些多项式进行操作。但是,当我使用构造函数创建类对象时,会创建正确的向量,但是当我尝试在(例如)函数中使用相同的向量时,其大小设置为0。我已经做了旧的方式,只是在程序的不同点上计算一些数字来识别错误 注意:我使用的是名称空间std 以下是仅包含与此问题相关的项目的头文件: Class Polynom{ public: ... Polynom(const vector<int>& co

因此,我试图制作一个程序,存储用户输入的多项式作为向量,然后我的程序将允许用户使用重载运算符对这些多项式进行操作。但是,当我使用构造函数创建类对象时,会创建正确的向量,但是当我尝试在(例如)函数中使用相同的向量时,其大小设置为0。我已经做了旧的方式,只是在程序的不同点上计算一些数字来识别错误

注意:我使用的是名称空间std

以下是仅包含与此问题相关的项目的头文件:

Class Polynom{
public:
...
Polynom(const vector<int>& coeff);
...
ostream& insert(ostream& sout);
...
private:
...
vector<int> P;
};
所以我被困在为什么p的内容没有被带到我的insert函数中。就我所知,我并没有掩盖向量,并在函数中创建一个新的向量


如果您的构造函数正在创建一个名为p的局部变量,该变量具有与同名类成员相同的优先级,则将非常感谢您的帮助。您正在本地构建向量,然后将其丢弃。

谢谢,这马上解决了问题
Polynom::Polynom(const vector<int>& coeff)
{
   vector<int> P(coeff) //coping the vector provided into a class vector
   cout << "A polynomia was created with the desired coefficient values" << endl;
   //Here is a for loop i made to ensure that P = coeff
   for(unsigned int i = 0; i<P.size(); i++)
   {
   cout << P[i] << " ";
   }
   cout << "Those were the content of P" << endl;
}
ostream& Polynom::insert(ostream& sout)
{
   ...
   unsigned int exponent;
   exponent = P.size()-1; //Since P.size is 0 exponent becomes random numbers since its unsigned
   cout << "The size of P is now: " << P.size() << endl;
   //I use a for loop to insert the contents of P into the ostream later on
   ...
   return sout;
}
int main()
{
vector<int> Poly1;
Poly1.push_back(1);
Poly1.push_back(2);
Poly1.push_back(3);
Poly1.push_back(4);
...
cout << Poly1.size() << " The size of Poly1" << endl; //Just making sure Poly1 was created with the right size
...
Polynom a1(Poly1); //creating the class object
...
a2.insert(cout);
...
return 0;
}
4 The size of Poly1
A polynomial was created with the desired coefficients
1 2 3 4 Those were the content of P
The size of P is now: 0