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));
Ошибка в файле .cpp на shared_ptr<RECT>
говоря:
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
Я не уверен, что это значит. Благодарю.
Вы должны предоставить динамически распределенный указатель на std::shared_ptr
конструктор. Кроме того, вы также можете, и я бы порекомендовал, использовать «заводскую функцию» std::make_shared
, следующее:
playerHealthBar->SetSourceRect(std::make_shared<RECT>(0.0, 0.0, 0.0, 0.0));
// ^^^^^^^^^^^
Конечно при условии RECT
принимает 4 двойных литеральных типа в одном из своих конструкторов.
Других решений пока нет …