错误:将'const xxx'传递为'this'参数会丢弃限定符[-fpermissive]

时间:2016-10-31 21:00:51

标签: c++ operator-overloading copy-constructor

我知道之前已经问过这个问题,而且我把所有答案都删了,但我没找到能帮助我的东西。希望你能! 所以,我有一个名为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];
}

0 个答案:

没有答案