段使用相同初始化列表中初始化的方法初始化变量时出现故障

问题描述

这为什么给出段。故障。显然这是由于我在C1中初始化partner_的方式,但是我不确定为什么不允许这样

#include <memory>
#include <vector>
class C2{
  std::vector<int> partners_;
  public:
  C2(){
   partners_.resize(10); 
   for( auto& n: partners_ ) n = 1;

   } 
   public:
   const std::vector<int>& GetPart( void )const
   {
     return partners_;
   };
};

class C1{

   private:

   const std::vector<int>& partners_;
   const std::unique_ptr<const C2>& C2METHOD;
   public:
   C1(const std::unique_ptr<const C2>& C2METHOD_) : C2METHOD(C2METHOD_),partners_(C2METHOD->GetPart()) { }

};




int main( int argc,char *argv[])
{

   auto TaskDivider = std::make_unique<const C2>(  );
   auto shm     = std::make_unique<C1>( TaskDivider ) ;

};

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)