繁体   English   中英

没有对象就无法调用成员函数std :: string Sportist :: getIme()

[英]Cannot call member function std::string Sportist::getIme() without object

我有A班:

class Sportist{
    private:
        string ime;
        int godina_na_ragjanje;
        int godisna_zarabotuvacka_EUR;
    public:
        Sportist(string i, int g_n_r, int g_z_EUR){
            ime = i;
            godina_na_ragjanje = g_n_r;
            godisna_zarabotuvacka_EUR = g_z_EUR;
        }
        string getIme(){
            return ime;
        }
        int getGodinaNaRagjanje(){
            return godina_na_ragjanje;
        }
        int getGodisnaZarabotuvackaEUR(){
            return godisna_zarabotuvacka_EUR;
        }
};

而使用公共类A的类B:

class Fudbaler:public Sportist{
    private:
        int broj_na_odigrani_natprevari;
        int danocna_stapka;
    public:
        Fudbaler(string ime, int godina, int zarabotuvacka, int b, int d)
            :Sportist(ime, godina, zarabotuvacka)
        {
            broj_na_odigrani_natprevari = b;
            danocna_stapka = d;
        }
        float danok(){
            return getGodisnaZarabotuvackaEUR() * danocna_stapka;
        }
        friend ostream& operator<<(ostream &os, Fudbaler F){
            return os << "Ime: " << getIme() << endl
                      << "Godina na raganje: " << getGodinaNaRagjanje() << endl
                      << "Godisna zarabotuvacka(EUR): " << getGodisnaZarabotuvackaEUR() << endl
                      << "Danok sto treba da plati: " << danok();
        }
};

我在这些行的标题中遇到了4个错误:

        return os << "Ime: " << getIme() << endl
                  << "Godina na raganje: " << getGodinaNaRagjanje() << endl
                  << "Godisna zarabotuvacka(EUR): " << getGodisnaZarabotuvackaEUR() << endl
                  << "Danok sto treba da plati: " << danok();

无法在没有对象的情况下调用成员函数'std :: string Sportist :: getIme()'

无法在没有对象的情况下调用成员函数'int Sportist :: getGodinaNaRagjanje()'

无法在没有对象的情况下调用成员函数'int Sportist :: getGodisnaZarabotuvackaEUR()'

无法在没有对象的情况下调用成员函数“ float Fudbaler :: danok()”

我会说功能应该更改为

friend ostream& operator<<(ostream &os, Fudbaler F){
            return os << "Ime: " << F.getIme() << endl
                      << "Godina na raganje: " << F.getGodinaNaRagjanje() << endl
                      << "Godisna zarabotuvacka(EUR): " << F.getGodisnaZarabotuvackaEUR() << endl
                      << "Danok sto treba da plati: " << F.danok();
        }

对于std::streams运算符重载,我不是很确定。 我通常在课外做那件事。 从错误消息中,您需要使用传递的Fudbaler变量来访问它的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM