FTH: (2100): *** Fault tolerant heap shim applied to current process. This is usually due to previous crashes. *** Вот это получаю, когда просто переставляю порядок инициализации объектов классов.
У меня вопросы, скажите мне ЗЕЛЕНОМУ, я учусь по книге Язык программирование С++ спец издание, Б С, - там инициализация объектов классов задается в списке, после конструктора, но НЕ В ТЕЛЕ(!!!), еще - при инициализации есть параметр -*QObect или *QWidget parent(тоесть виджет будет просто окном - зачем вставлять this если он не расширяет функционал?
??). Родитель, это я так понимаю, что наследуемый класс, просто расширяет функционал базового класса, я убрал и лаута this(в инициализации) - и у меня вышла накладка текста, поставил в теле конструктора - у меня есть аддлаут(без инициализации this - РАБОТАЕТ ТАК КАК НАДО), в чем отличие инициализации после двоеточия конструктора и инициализации объектов в теле конструктора?
?? - поведение вообще разное объектов!!!!! Знаю, что Микрософт обычно перепахивает ГНУ компилятора так, что ни один узер гайд "не работает", что скажите насчет изложенного?
? ТО ЕСТЬ МЕНЯ ИНТЕРЕСУЕТ ПОРЯДОК ИНИЦИАЛИЗАЦИИ ОБЪЕКТОВ
Исходники есть у Вас, - по логике все GUI(виджеты инициализируются первыми) потом инициализируется QUDPSOCKET, причем в конструктор входит this! Верно?
Общаясь с программистами, я понял одно - КОМПИЛЯТОР НИКТО НЕ ПОНИМАЕТ КРОМЕ СОЗДАТЕЛЕЙ, - ВСЕ АКЦЕНТИРУЮТ (ИНТЕНЦИЯ) НА СУБЪЕКТИВНОМ ЭМПИРИЗМЕ(то есть опыт, обычный многолетний опыт - НЕ ЛОГИКА!!!) + сенсуалимз, ТО ЕСТЬ ЛОГИКИ НЕТ! КОМБИНАТОРИКА ОДНА?
? (состояние темпоральности или эфемерности,я не затрагиваю, - берем общий случай, время равно константе)
Проще, верен ли порядок инициализации объектов
THash MainWin::IpHostTbl;
MainWin::MainWin(QWidget* parent)
: QWidget(parent), VBoxLt(), GrpBox("LIST OF USER"), GridLt()
,SgnlMap()
,HostIp(QNetworkInterface::allAddresses().first().toString())
,HostName(QHostInfo::localHostName())
,UdpSckt(this)
{
MainWin::IpHostTbl.insert(QString(QHostAddress::Broadcast), QString("TO ALL") );
this->VBoxLt.addWidget(addChkBox(QString("TO ALL")));
this->GrpBox.setAlignment(Qt::AlignCenter);
this->GrpBox.setLayout(&VBoxLt);
this->GridLt.addWidget(&GrpBox, ZERO, ZERO, Qt::AlignCenter);
this->setLayout(&GridLt);
this->UdpSckt.bind(QHostAddress::LocalHost, PORT);
QObject::connect(&UdpSckt, SIGNAL(readyRead()), this, SLOT(readDatagram()) );
QObject::connect(&SgnlMap, SIGNAL(mapped(const QString&)), this, SLOT(switchUser(const QString&)) );
this->TmrHashID = startTimer(INTERVAL);
}
То есть он будет верен - если объекты вызываются в соответствии инициализации, - тоесть объект проинициализирован, - вызывается(или является членом функции, так как функция не занимает памяти), тогда вопрос о this остается, UdpSckt(this) - THIS НУЖЕН ИЛИ НЕТ?
Да - почему?
Нет - почему?
Кстати! я заметил смотря примеры - НИ ГДЕ нет той инициализации(ВЕЗЬДЕ - УКАЗАТЕЛИ!!!), которую я использую! И примеры очень хитрые - нет множественного наследия, тривиальные, но тривиальность не говорит о тождественности(конгруэнтности)! референт дескрипции денотата имеет разный сигнификат!
Эту ошибку элиминировал, но возникла редукция к
http://www.prog.org.ru/topic_26306_0.html, - НЕ ПОЙМУ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! какая-то коннотационная(каузальная) связь!!!!!!!!!!!!!!!!! хоть лопни!!!!! разложил же - все верно(в соответствии со стр 295 10,6,1 Необходимая инициализация членов Глава 10 Классы)
Не встретил ни на одном форуме, англоязычном, как работает Qt с памятью - а вопросы кстати задавали, - понял одно создает из кучи,,,,,,,,,
Просто немного устал уже................... - вероятно притерлось,,,,отвлечься нужно