错误:将'const Tarih'作为'void(int)'的'this'参数传递,丢弃限定符|

时间:2013-05-26 11:16:01

标签: c++ const

void Ogrenci::ogr_dogum_tarihi_ayarla(int g,int a,int y) const
{
   dogum_tarihi.ay_ayarla(a);
   dogum_tarihi.gun_ayarla(g);
   dogum_tarihi.yil_ayarla(y);
}

这是我的cpp文件ogrenci.cpp

private:
     const Tarih dogum_tarihi;
public
     void ogr_dogum_tarihi_ayarla(int,int,int) const;

这是我的标题文件ogrenci.h

void Tarih::gun_ayarla(int g)
{
    gun=g;
}

这是我的cpp文件tarih.cpp

中的内容
private:
int gun;

这是我的tarih.h中的内容。

我的问题是

ogrenci.cpp|36|error: passing 'const Tarih' as 'this' argument of 'void Tarih::ay_ayarla(int)' discards qualifiers|

我想dogum_tarihi const

有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

您似乎在const对象上调用非const方法:

dogum_tarihi.ay_ayarla(a);

你做不到。将方法ay_ayarla(和其他方法)设为const,或使对象可更改。