好长时间没有接触到类了,今天老师布置一道作业如下
C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。本次类实现一个矩阵类,基本定义如下:
class RMatrix
{
private:
int rw; //矩阵行数目
int rc; //矩阵列数目
float *elmSet; //矩阵元素集合,其中 elmSet[i*rc+j]代表第i行,第j列的元素值
public:
RMatrix(); //构造函数,令rw=0,rc=0,elmSet=0
RMatrix(int row, int col); //构造函数,令rw=row,rc=col,elmSet=new float[row*col] 元素值全为0
~RMatrix(); //析构函数,如果elmSet!=0,则delete [] elmSet
float GetElem(int i, int j); //得到矩阵的元素值
void SetElem(int i, int j, float value); //设定矩阵的元素值,
int GetRow(); //得到矩阵的行数目,
int GetCol(); //得到矩阵的列数目,
void AugumentMatrix(); //对当前矩阵进行增广操作(即在右侧增加一列,该列的值全为0)
}
要求:
1) 初始化一个4*3的矩阵,并初始化其对角线上的值为1,其他值为0
2) 打印输出该矩阵来验证初始化结果是否准确
3) 调用AugumentMatrix,再打印输出该矩阵来验证初始化结果是否准确
问题描述
这道题不难,但是我踩到了一个坑。
- 我写了一个无参构造,就会爆出`该构造函数不能返回值
- 我仔细检查,百思不得其解后,只能用自动纠错,结果帮我创建了一个头文件。
解决问题
所以vs还是比较死板的,类定义最好写在头文件里,不然会报错的