c++ 求救

来源:百度知道 编辑:UC知道 时间:2024/06/04 01:05:41
//类定义文件
#ifndef CVECTOR_H_H_H_H
#define CVECTOR_H_H_H_H

#include <ostream>

class CVector
{
friend class CMatrix;
double *buffer;
int length; //向量元素个数
public:
CVector(int num)
{
buffer=new double[num];
memset(buffer,0,sizeof(double)*num);
length=num;
}

CVector(CVector &v)
{
length=v.length;
buffer=new double[length];
memcpy(buffer,v.buffer,sizeof(double)*length);
}

CVector& operator=(CVector&); //赋值运算符

~CVector()
{
delete [] buffer;
}

int Length()
{
return length;
}

//下面两个运算符使得向量可以通过数组方式访问
operator double*(){return buffer;}
double& operator[](int i){return buffer[i];}

//加减与数乘运算的说明(二元)
friend CVector operator+(CVector&,CVector&);
friend CVector operator-(CVector& v1,CVector& v2){return v1+(-1)*v2;};
frien

学会调试,变量跟踪、断点、单步运行,很容易找出类似错误。或者可以在函数里增加些cout 输出变量的值,也有助于看出是哪里错了。

问题出在两个memcpy, 和《运算符的重载上。

我觉得你的头文件错了,你的头文件我没有见过,你把头文件改成iostream这个可能会好点