C++ PB中类中包含类的转换与使用

package MyStudents;

message Student
{
optional string name = 1;
enum enSex
{
MALE = 0;
FEMALE = 1;
}

optional enSex student_sex= 2 [default = MALE];
};

message Classroom
{
repeated Student students = 1;
};

 

#include <iostream>
using namespace std;
#include<fstream>

#include "Student.pb.h"

#pragma comment(lib, "libprotoc.lib")
#pragma comment(lib, "libprotobuf-lite.lib")
#pragma comment(lib, "libprotobuf.lib")
using namespace MyStudents;


int main()
{

Classroom scienceroom;
Student *pStudent = scienceroom.add_students();
pStudent->set_name("ganquanfu");
pStudent->set_student_sex(Student_enSex::Student_enSex_MALE);


pStudent = scienceroom.add_students();
pStudent->set_name("zhangxiaolan");
pStudent->set_student_sex(Student_enSex::Student_enSex_FEMALE);


string transferMsg;

scienceroom.SerializeToString(&transferMsg);
// cout << transferMsg << endl;


Classroom result;
if (!result.ParseFromString(transferMsg))
{
cout << "反序列化失败" << endl;
return -1;
}


int size;

size = result.students().size();
for (int i = 0; i < size; ++i)
{
pStudent = const_cast<Student*>(&result.students(i));
cout << pStudent->name() << pStudent->student_sex() << endl;
}


int wait;
cin >> wait;
return 0;
}

posted @ 2013-07-02 20:14  Predator  阅读(689)  评论(0编辑  收藏  举报