我在使用動態數組重載=運算符時遇到了問題。這是我迄今爲止所擁有的。此外,我知道我還沒有寫我的析構函數或構造函數,但我需要把重點放在該運營商第一次:C++爲動態多維數組錯誤重載賦值運算符
在我的頭文件:
#ifndef fasdf_dynn_h
#define fasdf_dynn_h
#include <iostream>
#include <fstream>
#include<string>
#include <cstdlib>
#include <vector>
using namespace std;
template <class T>
class MatrixdynVector{
public:
template <class H>
MatrixdynVector<H>& operator =(const MatrixdynVector<H>& c)
{
if (this == &c)//checks for self assignment
{
return *this;
}
else
{
delete [] matrix;
matrix=new int[c.m*n];
this->m=c.m;
this->n=c.n;
return *this;
}
}
private:
int m,n;
int** matrix;
};
#endif
你能詳細說明你有什麼樣的麻煩嗎? – user4578093
@ user4578093字面上我不知道我在做什麼,我需要幫助重載動態數組的=運算符。我不知道如果我在正確的軌道im內存中的東西薄弱 – Brogrammer
即使你有一個「templated operator =」,你仍然需要非模板版本,否則編譯器會爲你生成一個。 –