Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: Проблемы с конструктором копирования и деструктором.  (Прочитано 17192 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #30 : 09-10-2008 08:21 » 

RuNTiME, ничего крутого в инлайне нету, можешь даже не указывать это слово там. Это целостность объекта, а не крутость ) А значит - меньше мигрени
Записан

Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #31 : 09-10-2008 08:38 » 

RuNTiME, ничего крутого в инлайне нету, можешь даже не указывать это слово там. Это целостность объекта, а не крутость ) А значит - меньше мигрени
+1. Лучше уж читаемый и монолитный код, чем нечто, навороченное препроцессором. Чтобы функция гарантировано была inline, можно соблюдать рекомендации. Уж где-где, а в приведённом случае с ELEMENT у компилятора нет ровно никаких оснований, чтобы не заинлайнить.
Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #32 : 09-10-2008 10:10 » 

А раз при записи данных, сам объект не изменяется и это не требуется, то пусть лучше будет объявлен как константный. Избавит от случайных ошибок, что уже Гуд Улыбаюсь .

Это совсем не "Гуд". Как вы думаете, как типичные разработчики проинтерпретируют объявление
Код:
const matrix M = someOtherMatrix;

Они прочтут это объявлени так: создается копия объекта someOtherMatrix, и эта копия не изменяется. Готов спорить, что им глубоко пофиг на внутреннее устройство матрицы, указатели там или какая еще фигня используется для хранения коэффициентов матрицы. То есть, для них константность означает, что коэффициенты матрицы не изменяются! Ваш класс matrix неизменности содержимого не гарантирует.

Как вам такой код:
Код:
    const int x = 10;
    cin >> x;

Бред? Бред. Зачем создавать константный объект, чтобы затем его модифицировать. Но ваш класс matrix позволяет такую фигню писать. Любой константный объект matrix можно изменить оператором >>, и компилятор не сможет поймать за руку.
Код:
    const matrix M = someOtherMatrix;
    cin >> M;

Если вы сделаете оператор >> только для неконстантных объектов, то компилятор не пропустит предыдущий пример.
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Янус
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #33 : 14-10-2008 19:09 » 

Господа, если не отвлекатся на частности, то грубые ошибки насколько я понял были у меня в двух местах. 1. Конструктор копирования. 2. Деструктор. Ну еще не совсем правильный метод программирования N мерного динамического массива.
Это так или есть еще где грубые огрехи ?
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #34 : 14-10-2008 19:17 » 

Янус, а где исправленный код ? ) Как мы посмотреть то сможем
Записан

Страниц: 1 [2]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines