【发布时间】:2017-06-15 19:32:09
【问题描述】:
我该如何解决这个问题?我不明白错误在哪里 如果你需要我会发布衍生类,谢谢帮助。
float RifiutiP::getPrezzo()const{
float t=1;
float nt=0.5;
if (mode==0)Rifiuti::setCosto(t);
else Rifiuti::setCosto(nt) ;
return (Rifiuti::getCosto())*(Rifiuti::getPeso());
}
36 34 C:\Users\acer\Desktop\Università\Programmazione 1\Progetti\Rifiuti\Rifiutip.cpp [Error] passing 'const Mynamespace::RifiutiP' as 'this' argument of 'void Mynamespace::Rifiuti::setCosto(float)' discards qualifiers [-fpermissive]
这是我的基类
#ifndef _RIFIUTI_H
#define _RIFIUTI_H
#include <cstring>
#include <iostream>
using namespace std;
namespace Mynamespace{
class Rifiuti{
friend ostream& operator<<(ostream &,const Rifiuti&);
private:
char* codice;
int peso;
float costo;
public:
Rifiuti();
Rifiuti (const char* ,const int);
virtual ~Rifiuti();
Rifiuti(const Rifiuti &);
void setCodice(const char* );
void setPeso (const int p){peso=p;}
const char* getCodice ()const {return codice;}
const int getPeso ()const {return peso;}
virtual float getPrezzo()const=0;
virtual const char* validita(const char *&)const=0;
void setCosto (const float c){costo=c;}
const float getCosto()const {return costo;}
virtual ostream& print(ostream &)const;
};
}
#endif
【问题讨论】:
-
您不能从 const 成员函数(即
getPrezzo)调用非常量成员函数(即setCosto)。 -
@songyuanyao:答案在下面,伙计