crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в C++, виртуальный деструктор
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 19.8.2010, 15:51
 
Цитата(DEADHUNT @ 19.8.2010, 18:23) *
а все вызовы дополнительных утилит(moc, uic, etc.) в ручную прописывать?
можно и так сказать, т.к. отдельные списки создавать надо
DEADHUNT Дата 19.8.2010, 14:36
  вот нашёл пример: http://www.devexp.ru/2010/01/cmake-i-qt/ там макросы для этого есть.
на самом деле зачем постоянно использовать qmake, ведь проект который использует Qt != Qt проект.
BRE Дата 19.8.2010, 14:25
 
Цитата(DEADHUNT @ 19.8.2010, 15:23) *
а все вызовы дополнительных утилит(moc, uic, etc.) в ручную прописывать?

Зачем? CMake это все умеет и даже намного больше. :)
DEADHUNT Дата 19.8.2010, 14:23
 
Цитата(Litkevich Yuriy @ 19.8.2010, 9:51) *
Не уж-то на CMake придётся переходить? Так не охота что-то изучать на середине проекта.

а все вызовы дополнительных утилит(moc, uic, etc.) в ручную прописывать?
Алексей1153 Дата 19.8.2010, 12:43
  Litkevich Yuriy, а у тебя нигде директива не используется такая?
#pragma pack


upd
(всё, вопрос неактуален )) Внимательнее прочитал пост Юрия и понял, что это ни при чём)
Litkevich Yuriy Дата 19.8.2010, 8:51
  вобщем шутки RunTime продолжаются.

Похоже, что чуваки утверждавшие, что qmake - для простеньких приложений, правы. И видимо я дорос до более сложного приложения.

Прога падает при некоторых изменениях в исходнике. падает в самых неожиданных местах. Попытка добавить qDebug в выше стоящие по иерархии модули решает проблему (т.к. эти модули перекомпилируются).
Проделал такой эксперимент. При возникновении проблем, в один из вышестоящих модулей добавляю пустую строку - это вызывает перекомпиляцию. И теперь прога работает стабильно.

Не уж-то на CMake придётся переходить? Так не охота что-то изучать на середине проекта.
Алексей1153 Дата 18.8.2010, 19:12
  DEADHUNT, понятно )

А я то понял, что про именно из A вызов говорилось
Iron Bug Дата 18.8.2010, 15:03
 
Цитата(Litkevich Yuriy @ 17.8.2010, 15:57) *
Может кто-нибудь объяснить, как может влиять создание руками виртуального деструктора, при условии, что его тело пустое?

я уже писала: никак не влияет. просто лишний вызов или перераспределение кода при очередной компиляции скрывает ошибку потоков или затирания памяти.
от пустого деструктора абсолютно ничего не прибавляется, виртуальный он или не виртуальный.
DEADHUNT Дата 18.8.2010, 14:02
 
Цитата(Алексей1153 @ 18.8.2010, 14:57) *
Или я просто не понял, что ты имел в виду под "вызов чистых виртуальных функций".

struct A {
virtual void foo() = 0;
};

struct B : public A {

void foo()
{
    A::foo(); // <-
}

};
Алексей1153 Дата 18.8.2010, 13:57
 
Цитата(kwisp @ 18.8.2010, 16:41) *
хитрец ты вызываешь не чисто виртуальную функцию а переорпеделенную.

прошагай отладчиком - никакой хитрости :) Или я просто не понял, что ты имел в виду под "вызов чистых виртуальных функций". Ведь в классе A - это и есть есть чистая :)
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 21:02