我上课了
class Studentas
{
public:
static const int CPaz=10;
private:
string pavarde, vardas, grupe;
double paz[CPaz], // paþymiø masyvas
np; // paþymiø kiekis
double vidurkis;
double STsk;
public:
Studentas(): pavarde(""), vardas(""), grupe(""), np(0), STsk(1),vidurkis(0)
{ }
double imtinp(){return np;}
double imtipaz(int i){return paz[i];}
void Deti(string pav, string vard, string grup, int np, int pz[],double vid);
void grupeDETI(string grp,double vidurk){grupe=grp;vidurkis+=vidurk;}
double iv(){return vidurkis;} <---------------------------------------THE ONES IM USING
void isvestiVID(){vidurkis/=STsk;}
void pridetiSK(){STsk++;}
string ig(){return grupe;} <---------------------------------------THE ONES IM USING
string Spausdinti(int i);
string SpausdintiGrupes();
};
布尔我正在使用布尔
myfunction(Studentas const &d1,Studentas const &d2){return (d1.iv() > d2.iv() || d1.iv()==d2.iv() && d1.ig() < d2.ig());}
vector<Studentas> grupe;(with whatever length)
sort(grupe.begin(), grupe.end(),myfunction);
我得到一个错误,“无法将'指针'从'const Studentas'转换为'Studentas&'”
编辑:我使用void函数来获取我的变量 .
EDIT2:感谢所有的帮助,我想我只会把这个问题搞砸了 . 没有时间浪费,再次感谢你的帮助 .
编辑3:对我的运算符叠加进行了愚弄,下面的方法有效 .
1 回答
将您的方法标记为
const
:这样你就可以在
const
对象上调用它们,这就是d1
和d2
.逻辑上不需要修改对象的所有方法都应标记为
const
.