Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
yuriillusion
0 / 0 / 0
Регистрация: 27.03.2014
Сообщений: 9
#1

Класс безопасных матриц. Как должен быть устроен класс и как указать на матрицу одинарным указателем? - C++

08.05.2014, 00:04. Просмотров 262. Ответов 0
Метки нет (Все метки)

В университете в качестве лабораторной работы задали реализовать интерфейс класса безопасных матриц:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// исключения
struct BadDimensions {};
struct BadFirstIndex {};
struct BadSecondIndex {};
 
// интерфейс класса matrix
class matrix
{
    long    n, m;   // размерности матрицы
    double* p;      // указатель на матрицу
    matrix();
    class row
    {
        long    m;  // размерность строки
        double* p;  // указатель на строку
    public:
        row(long _m, double* _p);
            // оператор индексирования
        double& operator [] (long j);               // throw BadFirstIndex
        const double& operator [] (long j) const;   // throw BadSecondIndex
    };
public:
        // конструкторы
    matrix(long _n, long _m);
    matrix(const matrix& m);
        // деструктор
    ~matrix();
        // оператор присваивания
    matrix& operator = (const matrix& m);   // throw BadDimensions
        // оператор индексирования
    row operator [] (long i);               // throw BadFirstIndex
    const row operator [] (long i) const;   // throw BadFirstIndex
        // унарные операторы
    matrix& operator += (const matrix& m);  // throw BadDimensions
    matrix& operator -= (const matrix& m);  // throw BadDimensions
    matrix& operator *= (const matrix& m);  // throw BadDimensions
    matrix& operator *= (const double& d);
        // унарные операторы
    friend matrix operator -(const matrix& m);
    friend matrix operator +(const matrix& m);
        // бинарные операторы
    friend matrix operator * (const double& d, const matrix& m);
    friend matrix operator * (const matrix& m, const double& d);
        // следующие бинарные операторы 
        // могут выбросить исключение BadDimensions
    friend matrix operator + (const matrix& m1, const matrix& m2);   
    friend matrix operator - (const matrix& m1, const matrix& m2);
    friend matrix operator * (const matrix& m1, const matrix& m2);
};
Не понимаю, как должен быть устроен класс и как указать на матрицу одинарным указателем?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2014, 00:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс безопасных матриц. Как должен быть устроен класс и как указать на матрицу одинарным указателем? (C++):

Описать абстрактный класс породить от него еще два,один должен остаться абстрактным,другой должен быть способен пораждать объекты - C++
Знает кто как сделать?

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template <class T> class matrix { friend class diagonal; ...

Операнд * должен быть указателем - C++
Господа знатоки, объясните пожалуйста дураку, на что ругается компилятор и в чём смысл этих звёздочек почему где-то они есть, где-то их...

Создайте класс, в котором есть ostream& operator<<. Класс должен содержать очередь с приоритетом - C++
Создайте класс, в котором есть ostream&amp; operator&lt;&lt;. Класс должен содержать очередь с приоритетом. Создайте генератор — заполнитель очереди...

Создать класс. Символьное поле должно быть задано как объект класса string - C++
решите задачку!) 6. Создать класс. Символьное поле должно быть задано как объект класса string. Написать конструктор по умолчанию,...

Класс - матрица, как объявить нужную мне матрицу в конструкторе - C++
имеется класс матрица class matrix { private: int **matr; int m; int n; void create() { // создание матрицы matr =...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2014, 00:04
Привет! Вот еще темы с ответами:

Класс: как обратиться к методу производного класса через итератор на базовый класс? - C++
Есть абстрактный и два порожденных. Хочу создать например list&lt;Base*&gt; list1; затем добавляю себе в список: ...

Класс арифметических операций матрицы как на другую матрицу так и на число - C++
Описать класс,реализующий тип данных &quot;вещественная матрица&quot; и работу с ними.Класс должен реализовывать слудующие операции над матрицами: ...

Как создать класс со вложенной структурой указателей на класс? - C++
В классе Concept хранится массив (точнее map) структур Rel. Сама же структура Rel должна содержать указатели на класс Concept. ...

Как преобразовать указатель на класс к указателю на асбтрактный класс? - C++
Но тут есть одна тонкость- два промежуточных класса. Вот код, надеюсь всё из него понятно. #include &lt;stdio.h&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru