Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Какой язык выбрать: С++ или другой? 
V
    Опции темы
borisbn
Дата 16.2.2012, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(bems @  15.2.2012,  21:59 Найти цитируемый пост)
А поле будет инициализировано нулями еще до того как начнет выполняться тело самого наружного конструктора

0 - такое же число, как и все остальные. Только для указателей он показателен.
Хорошо. Другой пример
Код

class Base : public TObject {
public:
    Base() { min_duration = 1024.0 / (double)sampleRate(); }
    virtual int sampleRate() { return 44100; }
    double min_duration;
};

class Deriv : public Base {
public:
    Deriv( int code ) : Base(), m_code( code ) {
    }
    virtual int sampleRate() {
        switch ( m_code ) {
            case 0: return 8000;
            case 1: return 11025;
            case 2: return 22050;
            default: return 44100;
        }
    }
    int m_code;
};
Deriv * d = new Deriv( 1 );

немного надуманный, но, думаю, понятно, что я хотел сказать.
С другой стороны, если в спецификации языка чётко сказано, что в конструкторе (или как он называется в дельфи) базового класса м.б. вызвана ф-ция наследника, и ты всё равно делашь, как в примере - то сам дурак. А если ещё утверждаешь, что это - "кривость" языка, то это уже не лечится.

Повторюсь - для меня важнее, чтобы задача решалась. Не задача программирования (сделать такую-то конструкцию, вызвать конструктор и т.п.), а задача из предметной области. Если она лучше решается на Си++ - я её буду делать на Си++. Если лучше на дельфи - буду делать на дельфи (пока, кстати, такого не было).
Не так давно пришёл к нам молодой программист. Знает и плюсы и до-диез Я ему поставил задачу сделать одну программу. На плюсах. Он сделал на плюсах за две недели и с 10-ю cpp-шниками. Затем он не переписал её на до-диез. Заняло это 3 дня и пару исходников. Спрашивается - нафига я ему говорил писать на плюсах ??? Сам дурак.  smile 

А вообще - поддерживаю, что трёп пора прекращать.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
boostcoder
Дата 16.2.2012, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(borisbn @  16.2.2012,  09:09 Найти цитируемый пост)
что в конструкторе (или как он называется в дельфи) базового класса м.б. вызвана ф-ция наследника

фигасе. а енто как? smile 
тогда кто из них базовый? или наследуются только методы, а конструкторы по сути, простые методы?

и после этого "они" говорят что С++ плохой яп? smile 

Это сообщение отредактировал(а) boostcoder - 16.2.2012, 09:30
PM WWW   Вверх
mes
Дата 16.2.2012, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  16.2.2012,  08:21 Найти цитируемый пост)
. а енто как?

ну вначале в конструкторе наследника инициализируешь все данные, потом вызываешь конструктор базового, в котором вызывается виртуальная функция, которая пользуется данными наследника smile



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 16.2.2012, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  16.2.2012,  09:35 Найти цитируемый пост)
ну вначале в конструкторе наследника инициализируешь все данные, потом вызываешь конструктор базового, в котором вызывается виртуальная функция, которая пользуется данными наследника

ни пришей пи.14 рукав, это называется! smile 

теперь становится смешно от того, насколько это не костыльное решение smile 

Это сообщение отредактировал(а) boostcoder - 16.2.2012, 09:59
PM WWW   Вверх
borisbn
Дата 16.2.2012, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



boostcoder, выход-то простой: просто не называй это - конструктором. Называй это просто функцией базового класса. Она-то имеет права лазать в наследника... И потом, это поведение чётко описано в документации.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
boostcoder
Дата 16.2.2012, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



а кто эту функцию вызывает? какие-то скрытые от программиста механизмы?
PM WWW   Вверх
mes
Дата 16.2.2012, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  16.2.2012,  09:36 Найти цитируемый пост)
а кто эту функцию вызывает? какие-то скрытые от программиста механизмы? 

какую функцию ? дельфи-конструктор ?  программист при создании объекта, в конструкторе же сам устанавливает порядок вызовов конструкторов предков..
можно хоть в цикле 100 500 раз вызвать конструктор предка, если требуется smile
и.. в конструкторе данные не инициализируются, а присваиваются smile 
и еще объекты все создаются в куче, а на стеке записи  - никаких лишних сущностей smile

Цитата(bems @  15.2.2012,  20:59 Найти цитируемый пост)
да не, потому что я могу на дельфи написать такую последовательность вызовов, которая непредставима на плюсах

покажите такой пример smile 

Цитата(bems @  15.2.2012,  20:59 Найти цитируемый пост)
ну можно наделать дополнительных функций чтобы было похоже, но ясно же что это не то

я  надеюсь при анализе примера будем смотреть на суть происходящего, а не на условные названия, различные для  каждой идеологии.. smile

Это сообщение отредактировал(а) mes - 16.2.2012, 11:05


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 16.2.2012, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  16.2.2012,  10:51 Найти цитируемый пост)
дельфи-конструктор

так у него еще и собственное название.. smile 
PM WWW   Вверх
mes
Дата 16.2.2012, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  16.2.2012,  10:08 Найти цитируемый пост)
так у него еще и собственное название.. 

нет, я просто так выразился о  конструкторе в дельфи smile




--------------------
PM MAIL WWW   Вверх
borisbn
Дата 16.2.2012, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Народ! Остыньте smile


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
spyswamp
Дата 17.2.2012, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 349
Регистрация: 18.8.2006

Репутация: 1
Всего: 7



17 страниц Специальной Олимпиады. smile Такие треды еще больше укрепляют мнение о том, что надо уходить из программирования как профессиональной области деятельности уже через пару лет. Причем срочно.


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
bsa
Дата 17.2.2012, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



spyswamp, это ты зря. В каждой отрасли есть подобные споры.  smile 
PM   Вверх
WERITAS
Дата 16.2.2016, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


********
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 2.5.2005
Где: Москва

Репутация: нет
Всего: 5



Цитата(bsa @  17.2.2012,  16:34 Найти цитируемый пост)
 В каждой отрасли есть подобные споры. 

скорей везде есть люди, жаждущие подбросить гонва на вентилятор


--------------------
Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак"
PM MAIL   Вверх
borisbn
Дата 22.2.2016, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



WERITAS, ага. Ровно через четыре года ))


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1239 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.