![]() |
#2
阴天盖顶2012-06-03 13:59
|

#include <iostream>
using namespace std;
const size=3;
template<class T>
class vector
{
T*v;
public:
vector()
{
v=new T[size];
for (int i=0;i<size;i++)
v[i]=0;
}
vector(T *a)
{
for (int i=0;i<size;i++)
{
v[i]=a[i];
}
}
T operator*(vector&y)
{
T sum=0;
for (int i=0;i<size;i++)
{
sum+=this->v[i]*y.v[i];
}
return sum;
}
};
int main()
{
int x[size]={1,2,3};
int y[size]={4,5,6};
vector<int>v1;
vector<int>v2;
v1=x;
v2=y;
int r=v1*v2;
cout<<r<<endl;
return 0;
}
这是书上的一个例子,编译和组建都没问题,执行时弹出警告。我用VC6.0和VS2008都试过,可结果一样,请大家帮忙解决下! using namespace std;
const size=3;
template<class T>
class vector
{
T*v;
public:
vector()
{
v=new T[size];
for (int i=0;i<size;i++)
v[i]=0;
}
vector(T *a)
{
for (int i=0;i<size;i++)
{
v[i]=a[i];
}
}
T operator*(vector&y)
{
T sum=0;
for (int i=0;i<size;i++)
{
sum+=this->v[i]*y.v[i];
}
return sum;
}
};
int main()
{
int x[size]={1,2,3};
int y[size]={4,5,6};
vector<int>v1;
vector<int>v2;
v1=x;
v2=y;
int r=v1*v2;
cout<<r<<endl;
return 0;
}