目录字段内容的定义修饰符字段类型引用方式不同字段的方法1)optional修饰的基本类型:2)optional修饰的对象类型:3)repeated修饰的基本类型:4)repeated
//文件名:addressbook.proto
syntax = "proto2";//proto版本
//.proto文件新增一个可选的package声明符,用来防止不同的消息类型有命名冲突。
//包的声明符会根据使用语言的不同影响生成的代码。对于c++,产生的类会被包装在C++的命名空间中。
package tutorial;package声明符
message Person {
required string name = 1;//姓名,= 1 二进制编码中使用的唯一 “标记”
required int32 id = 2;//ID
optional string email = 3;//email
enum PhoneType {//枚举消息类型
MOBILE = 0;//proto3版本中,首成员必须为0,成员不应有相同的值
HOME = 1;
WORK = 2;
}
//
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phones = 4;//phones为数组
}
message AddressBook {
repeated Person people = 1;
}
表示属性值为可选项,不指定使用默认值。int和char数据类型默认为0,string默认为空,bool默认为false,嵌套message默认为构造,枚举为第一个
如果为optional属性,发送端没有包含该属性,则接收端在解析式采用默认值。对于默认值,如果已设置默认值,则采用默认值,如果未设置,则类型特定的默认值为使用,例如string的默认值为”“。
相当于namespace
相当于clas
相当于属性值
package::message.方法()
1.bool IsInitialized() const;: 检查是否已设置所有必填 required 字段
2.string DebugString() const;: 返回 message 的人类可读表达,对调试特别有用
3.void CopyFrom(const Person& from);用给定的 message 的值覆盖 message
4.void Clear();: 将所有元素清除回 empty 状态
属性名(i):返回集合中某一个元素,返回的是只读的属性类型对象的引用,属性类型是指pb中定义的对象;
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注编程网的更多内容!
--结束END--
本文标题: protobuf c++编程笔记
本文链接: https://www.lsjlt.com/news/133364.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0