C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 用我自己的方法扩展Protobuf大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我应该如何添加Protobuf消息的方法

假设我在.proto文件中:

package proto;
message Person {
  required String name = 1;
  required int32 id = 2;
  optional String email = 3;    
}

我想在消息中添加一个方法,比如字符串concatenatenameEmail().

我现在做的是我创建自己的C类,如下所示:

class Person : public proto::Person
{
public:
  Person( proto::Person const & person_ )
  : proto::Person(person_)
  {}

  String concateNatenameEmail()
  {
   ...
  }
};

所以缺点是我需要调用proto :: Person复制构造函数.有比这更优雅的解决方案吗?

解决方法

Google Protobufs特别不打算扩展.这是文档中的一个段落(在这个中间: http://code.google.com/apis/protocolbuffers/docs/cpptutorial.html):

如果你只想要一种方法,我可以看到这样的建议看起来很烦人,但总的来说这是一个非常好的建议.如果您真的没有其他功能可以保证创建特定于应用程序的“Person”类,那么定义顶级函数没有任何问题:

String concatenatenameEmail(const proto::Person &person) { ... }

大佬总结

以上是大佬教程为你收集整理的c – 用我自己的方法扩展Protobuf全部内容,希望文章能够帮你解决c – 用我自己的方法扩展Protobuf所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。