我想用两个不同的.hpp文件中的两个类来创建操作重载的代码 . 但是我有这些错误.....为什么我不能在另一个类文件中使用cpVector另一个obj?什么时候类型的不完整定义发生?
./cpScalar.hpp:30:19:错误:类型'const cpVector'的定义不完整(int i = 0; isize,i){^ ~~~~~~
这是一个类代码 .
#ifndef CPVECTOR_H
#define CPVECTOR_H
#include <iostream>
using namespace std;
class cpScalar;
class cpVector{
private:
unsigned int size;
cpScalar* sarr;
public:
cpVector(cpScalar* sarr,int size);
friend ostream & operstor << (ostream &out,const cpVector& res);
friend cpVector operator + (const cpVector& another);
friend cpVector operator + (const cpScalar& another);
friend cpVector operator - (const cpVector& another);
friend cpVector operator - (const cpScalar& another);
friend cpScalar& operator * (const cpVector& another);
friend cpVector operator * (const cpScalar& another);
friend cpVector operator / (cpVector another);
friend cpVector operator / (const cpScalar& another);
};
#include "cpScalar.hpp"
cpVector ::cpVector(int size,cpScalar arr[]){
sarr = new cpScalar[size];
for(int i=0;i<size;i++){
sarr[i]=arr[i];
}
}
cpVector cpVector:: operator + (const cpVector& another){
for(int i=0;i<size;i++){
sarr[i]= sarr[i]+another->sarr[i]
}
return this;
}
cpVector cpVector:: operator + (const cpScalar& another){
for(int i=0;i<this->size;i++){
sarr[i]=sarr[i]+another->num;
}
return this;
}
cpVector cpVector:: operator - (const cpVector& another){
for(int=0;i<size;i++){
sarr[i]=sarr[i]-another->num;
}
return this;
}
cpVector cpVector:: operator - (const cpScalar& another){
for(int i=0;i<size;i++){
sarr[i]=sarr[i]-another->num;
}
return this;
}
cpScalar& cpVector ::operator * (const cpVector& another){
cpScalar res = new cpScalar;
res->num=0;
for(int i=0;i<size;i++){
res->num=res->num+(sarr[i]*another->sarr[i]);
}
return res;
}
cpVector cpVector:: operator * (const cpScalar& another){
for(int i=0;i<size;i++){
sarr[i]=(sarr[i])*(another->num);
}
return this;
}
cpVector cpVector:: operator / (const cpVector& another){
for(int i=0;i<size;i++){
sarr[i]=(sarr[i])/(another->sarr[i]);
}
return this;
}
cpVector cpVector:: operator / (const cpScalar& another){
for(int i=0;i<size;i++){
sarr[i]=(sarr[i])/another->num;
}
return this;
}
ostream & operator << (ostream &out, const cpVector &res){
cout<<"[";
for(int i=0;i<res->size;i++){
cout<<res->sarr[i];
if(i<res->size-1){
cout<<",";
}
}
cout<<"]"
return cout;
}
#endif
这是我第一次在cpp中尝试两个不同的类 . 我不知道从哪里开始......