void PlayerHealthBar::SetSourceRect(std::shared_ptr<RECT> sourceRect)
{
this->sourceRect = sourceRect;
}
.CPP文件我试图从
设置源矩形playerHealthBar->SetSourceRect(std::shared_ptr<RECT>(0.0, 0.0, 0.0, 0.0));
错误发生在shared_ptr<RECT>
上的.cpp文件中:
8 IntelliSense: no instance of constructor "std::shared_ptr<_Ty>::shared_ptr [with _Ty=RECT]" matches the argument list
argument types are: (double, double, double, double) ...\Ship.cpp 84
我不确定这意味着什么。感谢。
答案 0 :(得分:2)
您应该为std::shared_ptr
的构造函数提供动态分配的指针。或者,你也可以,我推荐它,使用&#34;工厂功能&#34; std::make_shared
,如下:
playerHealthBar->SetSourceRect(std::make_shared<RECT>(0.0, 0.0, 0.0, 0.0));
// ^^^^^^^^^^^
当然假设RECT
在其中一个构造函数中接受4个双字面可转换类型。