我的first.h:
class skaiciavimas
{
public:
vector<int> vekto[2];
skaiciavimas();
~skaiciavimas();
....
我的first.cpp
#include "skaiciavimas.h"
skaiciavimas::skaiciavimas()
{ int i;
for(i=0;i<2;i++)
vekto[i].resize(3);
}
void skaiciavimas::showst(vector<int> st,int i)
{
vekto[i].at(0)=st.at(0);
vekto[i].at(1)=st.at(1);
vekto[i].at(2)=st.at(2);
cout<<vekto[1].at(0)<<vekto[0].at(0)<<endl;
}
void skaiciavimas::tikrinimas ()
{
cout<<vekto[1].at(0)<<vekto[0].at(0)<<endl;// gives always 0,0
....
我称之为shwst函数的第二类 second.cpp:
vandenynas::vandenynas()
{
vektorV.resize(3);
}
void vandenynas::duomenys (int i, int a, int a0)
{
switch (i)
{
case 0:
vektorV.at(0)=a-a0;
break;
case 1:
vektorV.at(1)=a-a0;
break;
default:
vektorV.at(2)=a-a0;
break;
}
sk.showst(vektorV,0);
}
我从我的主要电话打来的tikrinimas功能:
sk.tikrinimas();
为什么这一行
cout<<vekto[1].at(0)<<vekto[0].at(0)<<endl;
alvays给了我00,如何纠正这个以获得在showst中分配的严格数字
P.S sk是我的班级(第一个sk;)
有一种名为duomenys和tikrinimas:
vandenynas vand;
skaiciavimas sk;
int main()
{
int i,a,a0,t;
int j=1;
while (j<3)
{
for (i=0;i<3;i++)
{
cout<<"enter "<<kas<<kint(i)<<" kordinates"<<endl;
cout<<kint(i)<<"0 = ";
cin>>a0;
cout<<kint(i)<<" = ";
cin>>a;
cout<<endl;
if (j==1)
vand.duomenys(i,a,a0);
}
j++;
}
sk.tikrinimas();
...
答案 0 :(得分:1)
cin>>a0;
您读取了局部变量的输入,但从不使用这些值调用sk.showst
。它的成员仍然是默认值,这应该不足为奇。