酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

C++ 实现:重载“+”运算符求 2 行 3 列矩阵之和

在C++中,你可以通过重载运算符“+”来实现两个矩阵的相加。下面是一个示例代码,展示了如何实现这一功能: ```cpp #include <iostream> using namespace std; class Matrix { private: int rows, cols; int data; public: // 构造函数 Matrix(int r, int c) : rows(r), cols(c) { data = new int*[rows]; for (int i = 0; i < rows; ++i) { data[i] = new int[cols]; } } // 析构函数 ~Matrix() { for (int i = 0; i < rows; ++i) { delete[] data[i]; } delete[] data; } // 重载运算符+ Matrix operator+(const Matrix& other) { Matrix result(rows, cols); for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { result.data[i][j] = this->data[i][j] + other.data[i][j]; } } return result; } // 输入矩阵 void input() { for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { cin >> data[i][j]; } } } // 输出矩阵 void display() { for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { cout << data[i][j] << " "; } cout << endl; } } }; int main() { Matrix a(2, 3); Matrix b(2, 3); cout << "输入矩阵a的元素:" << endl; a.input(); cout << "输入矩阵b的元素:" << endl; b.input(); Matrix c = a + b; cout << "矩阵a + 矩阵b的结果是:" << endl; c.display(); return 0; } ``` 代码解释: 1. Matrix类:定义了一个Matrix类,包含矩阵的行数、列数和一个二维数组`data`来存储矩阵元素。 2. 构造函数:初始化矩阵的行数和列数,并动态分配内存来存储矩阵元素。 3. 析构函数:释放动态分配的内存。 4. 运算符重载:重载了“+”运算符,使得两个Matrix对象可以直接相加。 5. input函数:用于从用户输入中读取矩阵元素。 6. display函数:用于输出矩阵元素。 额外需要注意的逻辑点: 1. 确保两个矩阵的维度相同,否则无法进行相加操作。 2. 在重载运算符时,返回一个新的Matrix对象,而不是修改原有的对象。 3. 在使用动态内存分配时,务必在析构函数中释放内存,避免内存泄漏。 ######[AI写代码神器 | 654点数解答 | 2025-03-17 20:53:52]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]