私は基本クラスを持っています:
class CDigit
{
private:
int m_iDigit;
public:
CDigit()
{
m_iDigit = 0;
}
CDigit( const int digit )
{
m_iDigit = digit;
}
void setDigit( const int digit )
{
m_iDigit = digit;
}
int getDigit() const
{
return m_iDigit;
}
virtual void output(ostream &x) = 0;
virtual bool less( CDigit *pDigit ) = 0;
};
そして派生クラス
class CExpected : public CDigit
{
private:
int m_iExpFreq;
public:
CExpected() : CDigit()
{
m_iExpFreq = 0;
}
CExpected( const int dig, const int freq) : CDigit(dig)
{
m_iExpFreq = freq;
}
CExpected( const CExpected& ce)
{
m_iExpFreq = ce.m_iExpFreq;
this->setDigit( ce.getDigit() );
}
void output(ostream &x)
{
x<<this->getDigit()<<" "<<this->m_iObsFreq;
}
bool less( CObserved *pDigit )
{
if( ( pDigit->getDigit() == this->getDigit() ) && (pDigit->getObserved() == this->getObserved() ) )
return true;
else
return false;
}
...
};
問題は、CExpected が抽象クラスであり、インスタンス化できないことをコンパイラが教えてくれることです。私は何を間違っていますか?
編集:実装しましたが、ここには追加しませんでした