请问使用C++该怎样定义一个矢量类CVector?

class CVector {
private:
float* p_val;
int size;
public:
CVectoe(int s);
CVector(const CVector &v);
~CVector();
CVector& operator = (const CVector &v); //赋值运算符重载
float& operator[] (int ix); //下标运算符重载
}

这道题怎样理解啊?
希望高手能直接给出代码,用主函数测试,简单点就好 !!因为这道题一点都理解不了

PIPIONE
浏览 331回答 2
2回答

小怪兽爱吃肉

矢量的表示方式常用的有两种,一是(r,φ),另一种是((x1,y1),(x2,y2))。不论哪种表示方式,它们的取值都是浮点型。我想p_val应该是指向一个浮点数组,size是申请数组的大小。

千万里不及你

我随便添了点,不知道是不是这样的方式。#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<malloc.h>#include<iostream>#include<vector>using namespace std;class CVector {private:float* p_val;int size;public:CVector(){size=2345;p_val=NULL;}CVector(int s){size=s;p_val=(float*)malloc(sizeof(float)*size);memset(p_val,0,sizeof(float)*size);}CVector(const CVector &v){p_val=(float*)malloc(sizeof(float)*v.size);size=v.size;for (int i=0;i<size;i++)p_val[i]=v.p_val[i];}~CVector(){free(p_val);}CVector& operator = (const CVector &v) //赋值运算符重载{if (v.size>this->size)this->p_val=(float*)realloc(this->p_val,sizeof(float)*v.size);this->size=v.size;for (int i=0;i<this->size;i++)this->p_val[i]=v.p_val[i];return *this;}float& operator[] (int ix) //下标运算符重载{return this->p_val[ix];}};int main(){int i,j,k;CVector go(4);CVector hi(45);go=hi;CVector cur(hi);return 0;}
打开App,查看更多内容
随时随地看视频慕课网APP