powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Какая нынче IDE для разработки ПО для линукс в Qt?
25 сообщений из 252, страница 5 из 11
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817166
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Почему требует и ругается на отсутствие конструктора класса по умолчанию?

Очевидно потому, что где-то ты создаёшь экземпляр этого класса умолчательным конструктором.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817182
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
Контейнеры Qt где то создают. Я не создаю.
Вызов идет на первой скобке входа в MainForm конструктора.
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817467
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Создал новый класс С++ в Qt.
Почему требует и ругается на отсутствие конструктора класса по умолчанию?
Как теперь защитится чтобы он не был вызван?
Райзе поставить?
А ты уверен, что нужно "защищаться", а не конструктор по умолчанию создать?

Ты бы код показал и место, где "требует и ругается".

Petro123...Вызов идет на первой скобке входа в MainForm конструктора.
Мозг сломал.
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817498
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёА ты уверен, что нужно "защищаться", а не конструктор по умолчанию создать?класс полностью мой и я точно знаю что пустой конструктор и класс не нужен.
Про то Qt требует такое в сети прочитал.
Код дам, если не веришь.

ёёёёёМозг сломал.поставил бряк и по стеку посмотрел кто вызвает. Не понял?
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817548
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сишники, подскажите.
Тут что то с копирующей инициализации класса)))
Я его рожал через знак равно. Как в других ЯП.
И даже работало).
Разбираюсь...
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817562
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так как у меня переменная класса в поле MainWindow то я в констукторе окна делал так:
Код: plaintext
1.
myClass = MyClass(5);


Это копирующая инициализация и так нельзя?
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817627
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

тут тебе не ява. читай синтаксис

ты создаешь 2 объекта
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817649
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl,
Подскажи как правильно.
1. Если в поле родителя поставить указатель, то так
Код: plaintext
1.
2.
A temp(3);
a = &temp;


2. Если в поле ставить Не указатель, то как инициализировать?

Код: plaintext
1.
2.
3.
4.
Class MainWindow... 
{
Q_OBJECT
A a;


?????
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817654
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemarglтут тебе не явада)).
И не шарп тоже. Подзабыл уже синтаксис.
Дельфи похож, в режиме pointer.
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817693
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123поставил бряк и по стеку посмотрел кто вызвает. Не понял?

Эту ошибку ты должен был получить ещё при компиляции, до отладчика дело дойти просто не могло.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817705
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovPetro123поставил бряк и по стеку посмотрел кто вызвает. Не понял?

Эту ошибку ты должен был получить ещё при компиляции, до отладчика дело дойти просто не могло.нет. Завел пустой конструктор и сейчас работаю с этим костылем. Просто лишний экземпляр первый болтается.
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817707
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
В си есть 3 вида инициализации. Прямая, копирующая и {}
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817714
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Завел пустой конструктор и сейчас работаю с этим костылем.

Заведи приватный или удалённый конструктор и компилятор тебе ткнёт пальцем в сломанное место.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817716
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Siemargl,
Подскажи как правильно.
1. Если в поле родителя поставить указатель, то так
Код: plaintext
1.
2.
A temp(3);
a = &temp;


2. Если в поле ставить Не указатель, то как инициализировать?

Код: plaintext
1.
2.
3.
4.
Class MainWindow... 
{
Q_OBJECT
A a;


?????
Не родитель а владелец. Не путай.

Код: plaintext
1.
2.
3.
4.
5.
6.
class MainWindow{
...
  A a;
  public:
  MainWindow(A par): a(par){}
} 
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817721
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl
Код: plaintext
1.
MainWindow(A par): a(par){}

так не могу. Надо в конструкторе. Там готовятся данные для инициализации a.
Несколько строк.
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817783
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Siemargl
Код: plaintext
1.
MainWindow(A par): a(par){}

так не могу. Надо в конструкторе. Там готовятся данные для инициализации a.
Несколько строк.к примеру:
Код: plaintext
1.
2.
3.
MainWindow(...): a(makePar(par)){}
private:
A makePar(...) {...}
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817788
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych,
Пробую...
Я вот что не пойму. Давайте создалим класс не в конструкторе, а позже. На onShow().
То есть у меня чуть позже конструктора вызовется моя функция
winShow{
...
Тогда как инициализировать?
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817801
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych
Код: plaintext
1.
MainWindow(...): a(makePar(par)){}

я не понимаю. Вы предлагаете заголовок конструктора модифицировать?
У меня и так там Qt наворотил
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
MainWindow::MainWindow(QWidget *parent)
  : QMainWindow(parent),
  ui(new Ui::MainWindow)
{
  
  ui->setupUi(this);
// тут нужно создать мой класс!!!!!!!!!!!!!!!!!! 
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817833
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, да ктож угадает, что тебе надо то на самом деле?)))

тогда меняй дизайн своего класса и делай его похожим на Ui::MainWindow.
будет как-то так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
MainWindow::MainWindow(QWidget *parent)
  : QMainWindow(parent),
  ui(new Ui::MainWindow),
  myclass()  // эту строчку встраивает компилятор неявно, поэтому у тебя и ломается всё без конструктора по умолчанию
{
  
  ui->setupUi(this);
  myclass->init(...); // ну, или setup, или ещё как тебе удобней
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817873
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych,
Так, спасибо. Этот вариант прояснили.
А вариант в методе после конструктора?
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817969
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123egorych,
Так, спасибо. Этот вариант прояснили.
А вариант в методе после конструктора?нет никакой разницы, где ты вызовешь свой init(), в конструкторе или в onShow.
Ну, или храни в классе главной формы не экземпляр, а указатель. Только не забудь, что пока ты под него не выделишь память - он будет указывать на мусор, или на nullptr, если делать правильно. И удалить его не забудь в деструкторе главноформы, естественно.
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817982
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych,
Init() это понятно.
Мне не хотелось бы добавлять своё в заголовок конструктора. Надо подумать.
Тогда конечно, получается указатель звездочкой получается в поле класса.
Как его указатель инициализировать тогда?
И как вызывать. Разыменовывать тогда и все вызовы в коде менять.
Дай пример по второму варианту указателю.
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817983
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych,
Вызвать я не забуду, а вот уничтожать обязательно если это главная форма и весь процесс разрушается?
В плюсах деструктор только по области видимости первого варианта? С укзателями не работает. Так?
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39817984
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123egorych,
Вызвать я не забуду, а вот уничтожать обязательно если это главная форма и весь процесс разрушается?
В плюсах деструктор только по области видимости первого варианта? С укзателями не работает. Так?
Можешь использовать объект - умный указатель.

Можешь потом инициализировать мембер явно функцией (но сначала он все= инициализируется конструктором по умолчанию).

Не очищать память конечно можно - ОС позаботится, но плохой стиль. Да и ресурсы бывают разные, не только память.
...
Рейтинг: 0 / 0
Какая нынче IDE для разработки ПО для линукс в Qt?
    #39818009
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych
Код: plaintext
1.
myclass()  // эту строчку встраивает компилятор неявно, поэтому у тебя и ломается всё без конструктора по умолчанию

я понял.
Мне надо убрать конструктор с параметрами. Будет без них неявно. И добавить init(param
Я не знал про неявный.
Если так, то вопрос решен.
Спасибо всем.
...
Рейтинг: 0 / 0
25 сообщений из 252, страница 5 из 11
Форумы / C++ [игнор отключен] [закрыт для гостей] / Какая нынче IDE для разработки ПО для линукс в Qt?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]