Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2012, 14:21   #11
Hejerdal
Пользователь
 
Регистрация: 03.07.2012
Сообщений: 14
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
Глянь ещё раз на собственный код. Присмотрись по внимательнее: что именно ты сделал? И если ты ещё не понял, то ты сделал надстройку над int, которая ничего абсолютно нового к типу данных int не добавила.

Я могу переписать весь твой код всего одной строчкой. И смысл не изменится:

typedef int TAge;

То, что ты сделал, называется "овер инжениринг". Создание бесполезной сущности, трата времени, и излишнее переусложнение кода.

В ситуациях, когда создание очередной сущности себя действительно оправдывает, способ rmv240899 естественно предпочтителен. Ибо однозначен и прост.

Способ "присваивать теплое мягкому" - плохой путь.
Способ "присваивать мягкое мягкому" - "овер инжениринг".
Это уже вопрос к топикстартеру, зачем ему класс, никак не расширяющий int (возможно это только заготовка и в будущем класс будет расширен). А в рамках задачи ElectroMent всё сделал правильно: собственно, нужно было только изменить возвращаемое значение operator=() с int на содержимое this.
Hejerdal вне форума Ответить с цитированием
Старый 11.07.2012, 14:40   #12
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Hejerdal Посмотреть сообщение
Это уже вопрос к топикстартеру, зачем ему класс, никак не расширяющий int (возможно это только заготовка и в будущем класс будет расширен). А в рамках задачи ElectroMent всё сделал правильно: собственно, нужно было только изменить возвращаемое значение operator=() с int на содержимое this.
Возможно автор вообще исключительно в образовательных целях пытается собрать клюкало.

А вот по поводу заготовки: ответ отрицательный.

Есть только два варианта:
1. Механизм агрегирует инт, и использует его для своих целей.
тогда запись: агрегируемое = агрегат; не правомерна.

Части нельзя присваивать целое (если конечно с головой все в порядке)

Хочешь извлечь на свет божий частичку агрегата?
агрегируемое = агрегат.ВернутьАгрегируемое();


2. Механизм является частным случаем базового типа. Этот путь приведет к овер-инженирингу (см выше).
_Bers вне форума Ответить с цитированием
Старый 11.07.2012, 16:09   #13
Hejerdal
Пользователь
 
Регистрация: 03.07.2012
Сообщений: 14
По умолчанию

Ошибка топикстартера как раз и заключалась в том, что он целому присваивал частное, когда возвращал в перегруженном операторе '=', не значение объекта класса TAge, а значение переменной-составляющей. ElectroMent эту ошибку исправил (надеюсь, это не осталось незамеченным за нашей дальнейшей слегка бесцельной беседой), а что планировалось делать дальше с этим классом, останется он таким, "переинжиниренным", или нет - нам с вами не известно.
Hejerdal вне форума Ответить с цитированием
Старый 11.07.2012, 22:47   #14
ElectroMent
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Hejerdal Посмотреть сообщение
Ошибка топикстартера как раз и заключалась в том, что он целому присваивал частное, когда возвращал в перегруженном операторе '=', не значение объекта класса TAge, а значение переменной-составляющей. ElectroMent эту ошибку исправил (надеюсь, это не осталось незамеченным за нашей дальнейшей слегка бесцельной беседой), а что планировалось делать дальше с этим классом, останется он таким, "переинжиниренным", или нет - нам с вами не известно.
В самую точку. Bers, как всегда, словоблудием страдает.
ElectroMent вне форума Ответить с цитированием
Старый 12.07.2012, 08:45   #15
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от ElectroMent Посмотреть сообщение
В самую точку. Bers, как всегда, словоблудием страдает.
Человек выше написал: "так делать нельзя. Используйте геттеры". И был прав.

Ты прилепил явное приведение типов бла бла бла, и ответил: "с++ делали не глупые люди".

Ну так вот, с++ унаследовал все самые худшие черты своего папочки - языка си. А си - самый раздолбайный язык в мире.
Можно делать любые вещи: противоречить здравому смыслу, стрелять себе в голову, присваивать части целое. Намек ясен?
_Bers вне форума Ответить с цитированием
Старый 12.07.2012, 10:00   #16
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Завязывайте. Опять завязывается полемика: у какого языка ето дело больше.
Каждый язык - бог и царь в своей области применения.
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Перегрузка оператора += и >> Jane-sad Помощь студентам 4 01.03.2013 15:38
перегрузка оператора ++ nhr Общие вопросы C/C++ 1 04.05.2011 23:32
перегрузка оператора ++ nhr Помощь студентам 0 04.05.2011 21:20
перегрузка оператора = mcpro Общие вопросы C/C++ 8 04.02.2011 15:28
Перегрузка оператора + (С++) MjRed Помощь студентам 1 15.12.2008 18:57