繁体   English   中英

在分配之前传递已分配的指针

[英]passing allocated pointer before it allocated

我正在研究开源项目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':未声明的标识符“错误。 所以我测试了简单的代码。

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

    }
};

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

}

它也会犯同样的错误。 “'tt':未声明的标识符”。 我错过了什么吗? 请帮我。

这是合法的。 变量在声明时立即在范围内。 存在此规则以使自引用数据结构能够在单个行中构建。 指针可以指向非构造对象,只要在构造该对象之前不对其进行解引用即可。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM