過去10年または2年間C#で作業した後、私のC++は少し錆びています。インスタンスが「削除された関数を参照しようとしました」というエラーを返しました
私は、データベースクラスを書いて、次の方法で問題を持っている:
CRecordset CAccessDatabaseReader::ExecuteSqlQuery(LPCTSTR pszSqlQuery)
{
CRecordset recordSet(&m_Database);
recordSet.Open(CRecordset::forwardOnly, pszSqlQuery);
return CRecordset(recordSet);
}
コンパイラはreturn
文で行に文句を言う:
エラーC2280「のCRecordset :: CRecordset(const CRecordset &) ':削除された関数を参照しようとしています
私はここで何が起こっているのか正確に分かりますか?
のCRecordsetがあるように思われますコピー可能でないクラス。コピーコンストラクタはありません。 –
C++では、クラスのコピーをオフにすることができます。これがCRecordsetのやり方です。だからあなたは価値によってそれを返すことができません。 – PaulMcKenzie
このようなCObjectベースのクラスを「返す」には、おそらく動的割り当てを使用する必要があります。 –