这两个变量定义有什么区别?

时间:2017-03-04 08:16:57

标签: c++ boost shared-ptr

我对c ++比较陌生,并且在一个特别大的现有项目中被抛入深层。在某些工作中,我遇到了导致段错误的代码:

boost::shared_ptr<Foobar> foo = boost::shared_ptr<Foobar>(new Foobar(bar));

出现如下错误:

#0  shared_count (r=..., this=0xb2e265c4) at .../boost/include/boost-1_55/boost/smart_ptr/detail/shared_count.hpp:382
    382 .../boost/include/boost-1_55/boost/smart_ptr/detail/shared_count.hpp: No such file or directory.
    in .../boost/include/boost-1_55/boost/smart_ptr/detail/shared_count.hpp
#1  shared_ptr (this=0xb2e265c0) at .../boost/include/boost-1_55/boost/smart_ptr/shared_ptr.hpp:329
#2  FooHandler::doAThing (this=0xb2e27310) at .../fooHandler.cpp:42

但是,当我将其更改为:

boost::shared_ptr<Foobar> foo;
foo = boost::shared_ptr<Foobar>(new Foobar(bar));

完美无缺。

我的问题是,在自定义变量foo和在为其分配值的同时定义它之间是否存在一些差异,这可能会导致这类问题?

0 个答案:

没有答案