首页 > 其他分享 >proto3中设置变量

proto3中设置变量

时间:2023-09-24 23:55:59浏览次数:41  
标签:set 变量 vector3D pos proto3 csdn 设置 new allocated

转自:https://blog.csdn.net/xiaxiazls/article/details/50118161

https://blog.csdn.net/swartz_lubel/article/details/79193291,这里举的例子不错。

1、介绍

针对一个复杂对象类型,set_allocated_answer(*),是需要传入一个手动new的对象,而不是一个局部变量。 

inline void PlayerPos::set_allocated_pos(::vector3D* pos) 
{  
    delete pos_;  //会先删除原来的指针指向
    pos_ = pos;  
    if (pos) 
    {    
        set_has_pos();  
    } 
    else {   
         clear_has_pos();  
    }
}

 如果是拷贝,可以直接copyFrom另外一个对象。

也可以使用mutable_(),这样函数在内部自动new了一个对象返回:

inline ::vector3D* PlayerPos::mutable_pos() 
{  
    set_has_pos();  
    if (pos_ == NULL) 
        pos_ = new ::vector3D;  //new
    return pos_;
}

 

标签:set,变量,vector3D,pos,proto3,csdn,设置,new,allocated
From: https://www.cnblogs.com/BlueBlueSea/p/17726975.html

相关文章

  • linux教程:route命令(显示并设置Linux中静态路由表)
    route显示并设置Linux中静态路由表补充说明route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中设置路由通常是为了解决以下问题:该L......
  • bool布尔变量取反的一个陷阱
    最近工作上被一个小问题耽误了一些时间,在此记录一下。问题出在对一个布尔变量的取反上。我的本意是想检查一个结构体中某1bit是0还是1,我直接进行取反“~”操作,运行是结果跟预想的不一致。才发现这个取反操作是一个坑。且看下面测试程序:#defineuint32_tunsignedintt......
  • 346_黑苹果Clover修改神器其一——设置自动倒计时
    这是一篇原发布于2020-02-0314:38:00得益小站的文章,备份在此处。前言这几日轶哥折腾黑苹果,安装过程倒是挺顺利,只不过这次的四叶草引导并没有自动倒计时功能。简单百度下,发现修改的方法挺简单,一起和轶哥来学习下吧![scodetype="yellow"]操作前请自行准备恢复U盘(推荐微PE),备份efi......
  • golang 使用redis设置分布式锁 demo
    内容来自对chatgpt的咨询分布式锁是在多个节点上运行的应用程序中协调工作的一种常用方法,而Redis是实现分布式锁的流行选择。以下是使用Go语言和github.com/go-redis/redis库来设置Redis分布式锁的一个简单示例:首先,确保你已经安装了该库:goget-ugithub.com/go-redis/redi......
  • CentOS如何查看是否安装FTP并设置端口?
    FTP是传输文件的常用协议之一linux系统怎么样,而在CentOS系统上是否安装了FTP,对于管理者和用户来说都是非常关键的。本篇文章将从以下八个方面进行深入分析:1.什么是FTP;2.CentOS下如何安装FTP;3.CentOS下如何启动FTP服务;4.CentOS下如何设置FTP服务的端口;5.CentOS下如何设置匿名访......
  • 设置ubuntu server 在 virtual box下的分别率
     首先进入virtualbox的ubuntuserver虚拟机,然后通过下面的命令重启系统shutdown-rnow在启动过程中按shift进入GRUB选择菜单,点击c进入命令行, 输入vbeinfo显示可用的分辨率,并记录下来 ......
  • 11.变量的作用域
    变量和函数的作用域:'usestrict'functionf(a){vara=1;a=a+1;}a=111111111111111;在Javascript中,var定义变量是有作用域的在函数体中声明,在函数体外是不能用的内部函数可以访问外部函数,反之不行functionf(x){//相当......
  • git设置ssh key 同时配置Gitee和GitHub
    背景:由于一直用gitee来git代码,并且一直通过ssh无密码连接本地和gitee远程仓库。最近想使用github的GitHubPages的部署功能,就不得不在github上建立远程仓库,并使用ssh方式来git代码。这个时候就发现,之前的ssh秘钥不能同时在gitee和github上使用。问题解决:之前的ssh秘钥还是用......
  • VMware虚拟机如何联网?虚拟机设置上网的详细操作
    Vmware是一款非常好用的虚拟机软件,可以让用户在单一的桌面上同时运行不同的操作系统。最近有一些用户下载安装了Vmware虚拟机后,不知道怎么设置上网,那么VMware虚拟机如何联网?下面就来看看详细的操作教程吧。 VMwareWorkstationProV16.0.0官方版[电脑软件] 大小:565.8......
  • JS 设置定时器与清除定时器
    在前端,一些功能的实现需要用到定时器:轮询、定时开关弹窗、秒表、定时跳转等。。一、设置定时器window提供两个方法实现:setTimeout、setIntervalsetInterval():使一段代码每过一段时间就执行一次,比如轮询setInterval(()=>{console.log('setInterval定时器')},1000)s......