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

Перегрузка оператора * - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Компилятор с поддержкой русского языка http://www.cyberforum.ru/cpp-beginners/thread747323.html
Использую MS Visual с++ 6.0, но он не поддерживает русского языка. Если в коде есть русские буквы - он заменяет их какими то непонятными символами. Подскажите какой другой компилятор выбрать, чтобы...
C++ как записать код задачи VS2010 Добрый вечер, я тут новенькая) дана дробь, наметки кода: #include "StdAfx.h" #include <iostream> #include <cmath> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread747322.html
двоичное дерево C++
Здравствуйте. Вот написал дерево через шаблоны: #include <iostream> using namespace std; template <class T> class BinaryTree { protected:
.Написать функцию, которая будет возвращать значение y=ln(x)+x при входящем параметре x. Построить таблицу значений этой функции C++
.Написать функцию, которая будет возвращать значение y=ln(x)+x при входящем параметре x. Построить таблицу значений этой функции. Надо написать функцию в C++
C++ Два треугольника заданы координатами своих вершин. Найти сумму длин вписанных в них окружностей. Вычисления длины окружности, вписанной в треугольник http://www.cyberforum.ru/cpp-beginners/thread747307.html
Два треугольника заданы координатами своих вершин. Найти сумму длин вписанных в них окружностей. Вычисления длины окружности, вписанной в треугольник оформить в виде подпрограммы. Надо написать...
C++ с 1. Описать структуру с именем TRAIN, которая содержит следующие поля: -NAZV - название пункта назначения; -NUMR - номер поезда; -DATE - дата отправления -TIME - время отправления. Написать... подробнее

Показать сообщение отдельно
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
30.12.2012, 07:58
Цитата Сообщение от Grinning liar Посмотреть сообщение
Т.е. копировать нужно только элементы матрицы
Да, так. Только тут нужно будет следить, чтобы размеры обоих матриц совпадали. Иначе, если при
C++
1
m1 = m2;
у m1 размер был меньше, то произойдет ошибка, т.к. выделено недостаточно памяти. Можно, допустим, проверить размер, и если он не совпадает, то выделить память по новой
C++
1
2
3
delete [] mas;
size = m2.size;
mas = new int[size];
Еще в операторе присваивания нужна проверка на присваивание объекта самому себе:
C++
1
2
if(this == &mas2) // если адреса объектов справа и слева от = совпадают, значит это один и тот же объект
    return *this;
Добавлено через 3 минуты
Цитата Сообщение от Grinning liar Посмотреть сообщение
что элементы умножаемой матрицы и конечной разные (и соответственно находятся в разных местах памяти), оба указателя хранят адрес начала исходной матрицы?
Умножаемая и конечная матрица будут хранить разные указатели и разные элементы. Но если написать:
m1 = m2, то указатели mas в обоих этих объектах будут содержать один и тот же адрес. Так как выполнится m1.mas = m2.mas (а надо копировать поэлементно)
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru