问题

计算数学 >> 数据结构
Questions in category: 数据结构 (Data Structure).

问题主要在 第二个类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;
 }