class user
{
private:
std::string first_name;
std::string middle_name;
std::string last_name;
int ID;
static int next_id;
public:
static int next_user_id()
{
next_id++;
return next_id;
}
group User_Group;
void set_ID(int c)
{
ID=c;
}
int get_ID()
{
return ID;
}
void set_first_name(std::string c)
{
first_name=c;
}
string get_first_name()
{
return first_name;
}
void set_middle_name(std::string c)
{
middle_name=c;
}
string get_middle_name()
{
return middle_name;
}
void set_last_name(std::string c)
{
last_name=c;
}
string get_last_name()
{
return last_name;
}
user()
{
ID = user::next_id++;
}
friend istream operator>>(istream is, user User);
friend ostream operator<<(ostream os, user User);
};
int user::next_id;
istream operator>>(istream is, user User)
{
is >> User.get_first_name();
is >> User.get_middle_name();
is >> User.get_last_name();
is >> User.get_ID();
is >> User.User_Group.get_name();
for(int j=0;j<=4;j++)
{
is >> User.User_Group.Week_Food[j].get_breakfsat();
is >> User.User_Group.Week_Food[j].get_lunch();
is >> User.User_Group.Week_Food[j].get_dinner();
}
for (int j=0;j<=30;j++)
{
is >> User.User_Group.Month_Food[j].get_breakfsat();
is >> User.User_Group.Month_Food[j].get_lunch();
is >> User.User_Group.Month_Food[j].get_dinner();
}
}
ostream operator<<(ostream os, user User)
{
os<<User.get_first_name()<<" "<< User.get_middle_name() <<" "<<User.get_last_name()<<" ";
for(int j=0;j<=4;j++)
{
os<<User.User_Group.Week_Food[j].get_breakfsat()<<" "<<User.User_Group.Week_Food[j].get_lunch()<<" "<< User.User_Group.Week_Food[j].get_dinner()<<" ";
}
for (int j=0;j<=30;j++)
{
os<< User.User_Group.Month_Food[j].get_breakfsat()<<" "<<User.User_Group.Month_Food[j].get_lunch()<<" "<<User.User_Group.Month_Food[j].get_dinner();
}
}
我是新來的C++,也許這是一個愚蠢的問題,但我需要的對象的數組寫入文件,並讀取它通過重載< <和>>運算形成有。當我嘗試將它用於int和bool類的成員時,出現錯誤。它似乎工作良好的字符串類型,所以我不知道如何繼續。我不斷收到一個錯誤:「沒有操作符>>與int和bool變量上的thees操作數匹配」。在>>運算符重載
'get_breakfsat'在您的代碼中始終拼寫錯誤... –