Chtěl bych se zeptat, co mám za chybu v podmínce, že mi nefunguje její druhá větev od else. Ať už je pohlavní nastaveno na true nebo false pokaždé program funguje, jakoby pohlaví bylo nastaveno na true.
#include <iostream>
using namespace std;
class Zvire {
string m_druh;
int m_kgJidlaNaDen;
bool m_pohlavi;
string m_jmeno;
public:
Zvire (string druh, bool pohlavi){
m_druh = druh;
m_kgJidlaNaDen = 30;
m_pohlavi = pohlavi;
m_jmeno = "";
}
void setJmeno (string jmeno){
cout <<"Zadej jmeno"<<endl;
cin>>jmeno;
m_jmeno = jmeno;
}
void zmenaJidla(bool pohlavi, int jidloKgNaDen){
if (pohlavi = true){
if (jidloKgNaDen<30){
cout<<"Vaha jidla musi byt minimalne 30kg"<<endl;
jidloKgNaDen =30;
}else{
m_kgJidlaNaDen=jidloKgNaDen;
}
}else{
if (jidloKgNaDen<50){
cout<<"Vaha jidla musi byt minimalne 50kg"<<endl;
jidloKgNaDen =50;
}else{
m_kgJidlaNaDen = jidloKgNaDen;
}
}
}
void printInfo(){
cout<<"Druh: "<<m_druh<<endl;
cout<<"Jidlo na den v Kg: "<<m_kgJidlaNaDen<<endl;
cout<<"Pohlavi: "<<m_pohlavi<<endl;
cout<<"Jmeno: "<<m_jmeno<<endl<<endl;
}
~Zvire(){
cout<<"Zvire bylo premisteno do jine zoo"<<endl;
}
};
int main()
{
Zvire* orangutan = new Zvire("opice",true);
orangutan->zmenaJidla(true,50);
orangutan->setJmeno("");
orangutan->printInfo();
delete orangutan;
return 0;
}