[英]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.