Класс математического вектора произвольной размерности (N) будет иметь следующий вид:
```cpp
#include
class Vector {
private:
int dimension;
double* values;
public:
// Конструктор класса, инициализирующий вектор размерности N и заполняющий его значениями val
Vector(int N, double val = 0.0) : dimension(N) {
values = new double[N];
for (int i = 0; i < N; ++i) {
values[i] = val;
}
}
// Деструктор класса для освобождения памяти, выделенной под массив значений
~Vector() {
delete[] values;
}
// Перегрузка оператора умножения вектора на число
Vector operator*(double scalar) {
Vector result(dimension);
for (int i = 0; i < dimension; ++i) {
result.values[i] = values[i] * scalar;
}
return result;
}
// Перегрузка оператора деления вектора на число
Vector operator/(double scalar) {
Vector result(dimension);
for (int i = 0; i < dimension; ++i) {
result.values[i] = values[i] / scalar;
}
return result;
}
// Перегрузка оператора скалярного произведения векторов
double operator*(const Vector& other) {
double result = 0;
for (int i = 0; i < dimension; ++i) {
result += values[i] * other.values[i];
}
return result;
}
// Метод для вывода вектора на экран
void print() {
for (int i = 0; i < dimension; ++i) {
std::cout << values[i] << " ";
}
std::cout << std::endl;
}
};
```
Теперь у вас есть класс математического вектора, в котором переопределены операторы для выполнения различных операций над векторами. Класс также содержит метод для вывода вектора на экран. Вам остается только создать объекты этого класса и проверить правильность реализации переопределенных операторов.