Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/86: Рейтинг темы: голосов - 86, средняя оценка - 4.83
 Аватар для maks_b1
1 / 1 / 0
Регистрация: 26.11.2011
Сообщений: 29

Класс "Матрица": конструктор, деструктор и перегрузка операторов

20.12.2011, 22:02. Показов 17622. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Матрица – KMatrix
Методы:
конструкторы, деструктор;
операции: [], =, ==, !=, +, +=, –, –=, *, *=, <<, >>
функции:
Transpose – транспонирование матрицы,
Rows() – количество строк,
Cols() – количество колонок,
Swap() - обменять значения (т.е. матрицы).
Примечание:
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.12.2011, 22:02
Ответы с готовыми решениями:

Шаблонный класс Матрица, перегрузка операторов
Всем здравствуйте, задали на дом создать шаблонный класс матрица с некоторыми методами и перегрузкой операторов &gt;&gt;, +, -, /, *. На...

Создание класса с перегрузкой операторов конструктор и деструктор
Создать класс времени (Time) содержащий закрытую переменную-член хранящую целое значение времени интервала в секундах. Интерфейс класса...

Перегрузка оператора ++ , деструктор и конструктор копий
Привет всем! В продолжение Этой темы появились новые вопросы и непонятки. Буду признателен за советы и разъяснения ;) Начну с...

22
Полярный
 Аватар для dimcoder
477 / 449 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
28.12.2011, 21:00
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от greeezz Посмотреть сообщение
потому что в функции есть проверка только на размер либо строк либо колонок
Там проверка только строк. Как вы сможите проверить валидность номера колонки?!

Цитата Сообщение от greeezz Посмотреть сообщение
главный минус в том что в том случае когда обращение к элементу корректное ваша функция вернет ошибку.
где-где??? В LiveWorkSpace вернёт 32:
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream>
using namespace std;
 
class matrix
{
   public:
 
   matrix(int, int, int = 0);
   ~matrix();
 
   float*& operator[](int) const;
 
   void operator*=(matrix& b);
   void operator/=(matrix& b);
 
 
   private:
 
   float **mPtr;
 
   int n;
 
   int m;
};
 
matrix::matrix(int nk, int mk, int init)
{
   //**mPtr = new (float[nk])[mk];
   mPtr = new float*[nk];
   for (int x = 0; x < nk; x++)
      mPtr[x] = new float[6];
 
   n = nk;
 
   m = mk;
 
   for (int i = 0; i < n; i++)
      for (int j = 0; j < n; j++)
    mPtr[i][j] = init;
}
 
matrix::~matrix ()
{
   delete [] mPtr;
}
 
float*& matrix::operator[](int nk) const
{
   if ((nk > n-1) || (nk < 0))
      cout << "Error: array overflow..." << endl;
   return mPtr[nk];
}
 
 
 
 
 
int main ()
{
   
 
   matrix m(10, 2); //NE KVAdratnYA MATRICA!
 
   m[9][1] = 32;
 
   cout << m[9][1] << endl;   //RABOTAET!
 
   return 0;
}

Здесь смысл прост! Выражение
C++
1
m[9][1] = 32;
сначала преобразуется в
C++
1
<какой-то адрес типа float>[32]
Здесь operator[] вызывается ОДИН РАЗ, воспользуйтесь трассировкой, если не верите!
1
278 / 174 / 21
Регистрация: 10.07.2011
Сообщений: 441
28.12.2011, 21:37
dimcoder, я уже разобрался
я сразу не понял что оператор вызывается только один раз. и потом происходт обращение к элементу грубо говоря вектора.

спасибо вам за дебаты! я узнал для себя много интересных вещей!
0
Полярный
 Аватар для dimcoder
477 / 449 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
29.12.2011, 09:09
Цитата Сообщение от greeezz Посмотреть сообщение
спасибо вам
И вам. С наступающим Новым Годом всех.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.12.2011, 09:09

Перегрузка операторов. Класс Матрица
Доброго времени суток! Вот задание моей лабы: Описать класс, что реализует указаный ниже тип данных. Класс должен содержать множество...

Программирование классов: конструктор, деструктор, перегрузки операторов
ЗАДАНИЕ: Дополнить класс, созданный в предыдущей работе(ПРИЛАГАЮ ЕГО НИЖЕ), перегруженным конструктором, деструктором и перегруженными...

Перегрузка операторов и конструктор копироваия
Все здравствуйте. У меня такая проблема, перегрузил основные операции для работы с одномернымм массивом, если массив статический все...

Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор
Всем доброго времени суток! нужна ваша помощь! нужно создать класс вектор и реализовать конструктор по умолчанию, копирования и...

Класс: конструктор и деструктор
Возник вопрос. Если я в классе не делаюни одного данного с выделением динамической памяти, то как мне организовать конструктор и...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru