0
我必須設計一個類int2d從vector<vector<int>>
繼承,所以下面的代碼:什麼構造函數中使用
int main()
{
int2d t1(4, 3);
for(int i = 0; i < 4; i++)
{
for(int j = 0; j < 3; j++)
{
t1(i, j) = i + j;
}
}
for(int i = 0; i < 4; i++)
{
for(int j = 0; j < 3; j++)
cout << t1(i, j) << " ";
{
cout<<endl;
}
}
}
...產生以下結果:
0 1 2
1 2 3
2 3 4
3 4 5
我已經寫:
class int2d : public vector<vector<int>> {
public:
vector<vector<int>> vec;
int a;
int b;
//vector<int> tmp;
//vector<vector<int>> vec(b);
int2d(int a, int b) {
vector<int> tmp(b);
vector<vector<int>> vec(a);
for(int i = 0; i < a; i++) {
vec.push_back(tmp);
}
}
int2d& operator = (const int2d& X){
if (this == &X)
return *this;
int2d tmp(X.a, X.b);
}
int2d& operator = (const int& X){
vec[a][b] = X;
}
};
但是我怎樣才能讓t1(i, j) = i + j;
編譯和工作?
你必須[重載函數調用操作符](http://www.tutorialspoint.com/cplusplus/function_call_operator_overloading.htm) – user463035818
爲什麼int2d從vector繼承? – rozina
我的代碼dosent工作,我不能編譯它。 –