我知道之前已经问过这个问题,而且我把所有答案都删了,但我没找到能帮助我的东西。希望你能! 所以,我有一个名为Vecteur的类,它有两个属性:dimension(表的大小)和值表。 在复制构造函数中,当我尝试将Vecteur& v的值复制到'this'的值时,它给了我一个错误,我不知道为什么因为我认为我重载了[]运算符! (当我试图解决这个问题时,我把它 - > t [i] = v.t [i]并且有效!但我发现它很奇怪,因为t是私有的。)
Vecteur.h
#ifndef VECTEUR_H
#define VECTEUR_H
#include "typedef.h"
class Vecteur
{
public:
Vecteur(int);
Vecteur(const Vecteur&);
~Vecteur();
scal& operator[](int);
protected:
private:
int dim;
scal *t;
};
#endif // VECTEUR_H
Vecteur.cpp
#include "Vecteur.h"
#include "typedef.h"
Vecteur::Vecteur(int dim)
{
this->dim = dim;
t = new scal[dim];
}
Vecteur::~Vecteur()
{
delete[] t;
}
Vecteur::Vecteur(const Vecteur &v)
{
for(int i=0; i<dim; i++){
t[i] = v[i];//The error
}
}
scal& Vecteur::operator[](int i){
return t[i];
}