我是C ++的新手,所以请给我建议。
我有以下基类:
class IMatriz {
int **m;
int numRows;
int numColumns;
public:
IMatriz() {
numRows = 0;
numColumns = 0;
m = NULL;
}
IMatriz(int r, int c) {
numRows = r;
numColumns = c;
m = new int* [numRows];
for(int i = 0; i < numRows; i++) {
m[i] = new int [numColumns];
}
}
virtual void setSize(int r, int c) = 0;
virtual void setValue(int row, int col, int val) = 0;
virtual int getValue(int row, int col) = 0;
virtual int getNumRows() = 0;
virtual int getNumColumns() = 0;
virtual void mult(IMatriz a, IMatriz b) = 0;
virtual void print(void) = 0;
};
我想知道如何声明继承的类。
我遇到了IMatriz()的问题。编译器向我发送消息ISO C ++禁止声明`IMatriz'没有类型。
提前致谢。
答案 0 :(得分:0)
class IMatriz {
protected:
int **m;
int numRows;
int numColumns;
public:
IMatriz() {
numRows = 0;
numColumns = 0;
m = NULL;
}
IMatriz(int r, int c) {
numRows = r;
numColumns = c;
m = new int* [numRows];
for(int i=0; i<numRows; i++)
m[i] = new int [numColumns];
}
virtual void setSize(int r, int c) = 0;
virtual void setValue(int row, int col, int val) { m[row][col] = val; }
virtual int getValue(int row, int col){ return m[row][col]; }
int getNumRows(){ return numRows;}
int getNumColumns(){ return numColumns; }
virtual void mult(IMatriz* a, IMatriz* b) = 0;
virtual void print(void) = 0;
};
class Child: public IMatriz{
public:
Child():IMatriz(){}
Child(int row, int col):IMatriz(row, col){}
};