加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 在分配之前传递分配的指针

发布时间:2020-12-16 03:13:50 所属栏目:百科 来源:网络整理
导读:我正在研究开源项目ROS.当我看到奇怪的代码. Server server(n,"do_dishes",boost::bind(execute,_1,server),false); 变量服务器在被分配为服务器之前被使用.那可能吗?至少,我的visual studio 2010编译器不了解那种风格的代码.请让我知道,如果这是真的可能的
我正在研究开源项目ROS.当我看到奇怪的代码.
Server server(n,"do_dishes",boost::bind(&execute,_1,&server),false);

变量服务器在被分配为服务器之前被使用.那可能吗?至少,我的visual studio 2010编译器不了解那种风格的代码.请让我知道,如果这是真的可能的代码,或不.

原始文件代码:http://wiki.ros.org/actionlib#C.2B-.2B-_SimpleActionServer

– – – – – 添加

谢谢你的好意但是当我编译它时,我收到了“’server’:undeclared identifier”错误.所以我测试了简单的代码.

class TestCls {
public:
    TestCls(TestCls *aa)
    {

    }
};

int main(int argc,char **argv)
{
    TestCls tt(&tt);

}

它也造成同样的错误. “’tt’:未声明的标识符”.
我错过了什么吗?请帮帮我.

解决方法

这是合法的变量在声明时立即处于范围内.该规则的存在是为了使自引用数据结构能够在一行中构建.指针可以指向非构造对象,只要在构造对象之前不引用它.

由于指针被传递到Server构造函数中,只要服务器在调用函数对象之前正确等待,这将会起作用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读