所以我有我的这个基类。
class Info{
private:
string name, sex;
int year, month, day, age;
public:
void setInfo(){
string n, s;
cout<<"Enter your full name: ";
cin>>n;
cout<<"Gender: ";
cin>>s;
name=n;
sex=s;
cout<<endl;
}
void setBirthdate(){
int y, m, d, a;
cout<<"Birthdate in numerical type"<<endl;
cout<<"Year: ";
cin>>y;
cout<<"Month: ";
cin>>m;
cout<<"Day: ";
cin>>d;
a=2014-y;
year=y;
month=m;
day=d;
age=a;
cout<<endl;
}
int getYear(){
return year;
}
int getMon(){
return month;
}
int getDay(){
return day;
}
int getAge(){
return age;
}
};
和派生类
class Fortunes:public Info{
private:
string zodiacs;
public:
Info fo1;
string getZodiac(){
if((fo1.getMon()<=4) && (fo1.getMon()>=3))
{
cout<<"Aries";
}
else
cout<<"aww";
}
};
主要班级
int main(){
Fortunes f;
f.setInfo();
f.setBirthdate();
f.getZodiac();
cout<<endl;
system("pause>nul");
}
我想制作一个程序,根据您输入的信息告诉您的星座。 所以我只测试了我的这个小代码,总是会显示出来。 我猜我的经营者错了?请帮帮我:(
答案 0 :(得分:1)
您创建了两个Info对象实例,一个作为f的子对象(声明为Fortunes f;),另一个声明为Info fo1;在Fortune对象中,但fo1未初始化。更正后的计划如下:
class Fortunes:public Info{
public:
string getZodiac(){
if((this->getMon()<=4) && (this->getMon()>=3))
{
cout<<"Aries";
}
else
cout<<"aww";
}
};