C++ クラス定義で混乱しました。誰かが私を助けることができますか?
私はそのように定義された元のテンプレートクラスを持っています:
template <typename T>
struct SYNCHED_DATA{
SYNCHED_DATA(int r)
{
var_R = r;
}
void set(T* pV)
{
var_T = *pV;
}
//...
private:
//Copy constructor and assignments are NOT available!
SYNCHED_DATA(const SYNCHED_DATA& s)
{
}
SYNCHED_DATA& operator = (const SYNCHED_DATA& s)
{
}
T var_T;
int var_R;
};
そして、私は別のクラスからそれを使用します:
struct THREADS_REPORT{
THREADS_REPORT() //error C2512: 'SYNCHED_DATA<T>' : no appropriate default constructor available
{
}
void getReport(THREADS_REPORT_DATA* pOutReport)
{
//Retrieve report array
sthrd.get(pOutReport);
}
void setReport(THREADS_REPORT_DATA* pReport)
{
//Set report array
sthrd.set(pReport);
}
private:
SYNCHED_DATA<THREADS_REPORT_DATA> sthrd;
//Copy constructor and assignments are NOT available!
THREADS_REPORT(const THREADS_REPORT& s) //error C2512: 'SYNCHED_DATA<T>' : no appropriate default constructor available
{
}
THREADS_REPORT& operator = (const THREADS_REPORT& s)
{
}
};
しかし、少なくとも 2 番目のクラス (上記のコードでマークされている) の 2 つの場所で「エラー C2512」エラーが発生します。コンパイルするには、2 番目のクラスをどのように変更する必要がありますか?