[C++]std::make_sharedとアップキャスト
Posted: 2016年5月21日(土) 10:17
お世話になります_(._.)_
Visual C++ 2010 Expressで次のように書きました。
コンパイルエラーの理由を教えていただけませんか。
エラー文の続きは、
error C2259: 'Base' : 抽象クラスをインスタンス化できません。
次のメンバーが原因です:
'void Base::Update(void)' : は抽象型です0
です。よろしくお願いします。
Visual C++ 2010 Expressで次のように書きました。
コンパイルエラーの理由を教えていただけませんか。
#include <memory>
class Base
{
public:
virtual void Update() = 0;
virtual ~Base() {}
};
class Derived : public Base
{
void Update(){}
};
void Test() {
std::shared_ptr<Base> testA = std::make_shared<Derived>(); // エラーなし
auto testB = std::make_shared<Base>( Derived() ); // error C2259: 'Base' : 抽象クラスをインスタンス化できません。
}
error C2259: 'Base' : 抽象クラスをインスタンス化できません。
次のメンバーが原因です:
'void Base::Update(void)' : は抽象型です0
です。よろしくお願いします。