私は2つのクラスを持っています:
class MyAbstractClass
{
public:
virtual const std::string& getStr() const =0;
}
class MyRealClass : public MyAbstractClass
{
public:
virtual const std::string& getStr() const { return m_str;};
private:
std::string m_str;
}
私は主に持っています:
MyAbstractClass* ptr = new(MyRealClass("some string"));
MyRealClass
基本クラスへのポインタを介して格納されている文字列情報を取得したいと考えています。ptr
情報を得るために何らかの方法でキャストする必要がありMyRealClass
ますか? またはランタイム環境は、私が実際getStr
に MyRealClass
?
ptr->getStr();
または何か他のようなものですstatic_cast<MyRealClass*>(ptr)->getStr();
かdynamic_cast<MyRealClass*>(ptr)->getStr();
?
一般に、単純な (実際の) 基本クラスだけでなく、Abstract 基本クラスへのポインターを使用している場合、実際にキャストする必要がありますか?