41. 问题主要在 第二个类Mailbox中 然后在测试时 无法输出
Posted by 120702117 on 2014-04-06 22:30:39 last update 2014-04-06 22:30:39 | Answers (1) | 收藏
主要问题 在程序中都有所标记
#include<iostream>
#include<ctime>
#include<string>
#include<vector>
using namespace std;
//这个类没有问题
class Message
{
public:
Message();
void append();
string to_string()const;
void print() const;
private:
string name1,name2;
string article;
time_t now_time;
};
Message::Message()
{
cout<<"Please enter the recipient\'s name:"<<endl;
getline(cin,name1);
cout<<"Please enter the addresser\'s name:"<<endl;
getline(cin,name2);
now_time=time(NULL);
append();
}
void Message::append()
{
string add_string;
cout<<"Please enter the add message"<<endl;
getline(cin,add_string);
article=article+add_string;
}
string Message::to_string()const
{
return "**********\nFrom:"+name2+"\nTo:"+name1+"\n"+article;
}
void Message::print()const
{
cout<<to_string()<<endl;
cout<<ctime(&now_time)<<"**********" <<endl;
}
class Mailbox
{
public:
Mailbox();
//问题应该在这几个成员函数中
void add_message(Message mes){MAIL.push_back(mes);}
void remove_message(int i);
Message get_message(int i);
private:
vector<Message>MAIL;
};
void Mailbox::remove_message(int i)//删掉MAIL中的第i个元素
{
vector<Message>::iterator pos;
pos=MAIL.begin();
MAIL.erase(pos+i);
}
Message Mailbox:: get_message(int i)//得到MAIL中的第i个元素
{
return MAIL[i];
}
int main()
{
Message mes1;
Message mes2;
Message mes3;
Mailbox mail;
mail.add_message(mes1);
mail.add_message(mes2);
mail.add_message(mes3);
mail.remove_message(1);
Message m1,m2;
//下面这几句 怎么改 都老是 出错- -。也可能是上面函数体出错 求老师指教
m1=mail.get_message(0);
m2=mail.get_message(1);
cout<<m1.print()<<endl;
cout<<m2.print()<<endl;
return 0;
}