0 / 0 / 0
Регистрация: 14.03.2019
Сообщений: 57
|
|
1 | |
Вызов функции из другого класса07.09.2019, 14:33. Показов 9270. Ответов 13
Метки нет Все метки)
(
Добрый день, пишу в qt. Столкнулся с проблемой вызова функции в другом классе. Все бы ничего, но функция из класса 2 частично использует списки и структуры из класса 1 .Не могу понять, как реализовать вызов функции из 2 в 1. Пытался объявить статической, но для этого нужно и все переменные иметь статические, а это проблематично, переводить из 1 класса структуры и списки в static. Есть ли какой-нибудь другой способ ?
Я новичок в c++, рассчитываю на ваше понимание. Спасибо за внимание ![]()
0
|
|
07.09.2019, 14:33 | |
Ответы с готовыми решениями:
13
Вызов функции из одного класса кнопкой из другого класса Вызов слота из другого класса Вызов функции из QItemDelegate класса QAbstractListModel Вызов функции другого потока и получение ответа с наименьшим кол-вом строк кода [QueuedConnection] |
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
|
||||||
07.09.2019, 15:29 | 2 | |||||
Надеюсь ты работаешь в консольном режиме? Если нет, то срочно начинай.
Нужно создать екземпляр класса Class2, и в нем вызвать функцию (а точнее метод). Ты о таком?:
0
|
0 / 0 / 0
Регистрация: 14.03.2019
Сообщений: 57
|
|
07.09.2019, 16:08 [ТС] | 3 |
Спасибо за ответ, да, в консоли. У меня 2 файла .h, каждый из них описывает свой класс. Основной код работает в 1-м, а второй как доп класс обработки части данных из первого, описал нужный мне алгоритм, который как кусок кода в первом работает отлично, необходимо было поместить в отдельный класс его и там описать. А вот обратиться не получается к доп функции
0
|
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
|
|
07.09.2019, 16:12 | 4 |
Блин, что ж вы все такие не разговорчивые, как я должен понять что тебе нужно? Просто передай указатель на объект как параметр функции да и все.
1
|
0 / 0 / 0
Регистрация: 14.03.2019
Сообщений: 57
|
|
07.09.2019, 16:29 [ТС] | 5 |
Буду разбираться с указателями, спасибо)
0
|
0 / 0 / 0
Регистрация: 14.03.2019
Сообщений: 57
|
|
09.09.2019, 20:13 [ТС] | 6 |
Что-то не выходит с указателями. На выходе первого класса сформированы данные для обработки вторым классом, но когда начинает выполняться функция из 2 класса, то все данные пропадают и компилятор не видит 0 элемент списка 1 класса, который был заполнен. Надеюсь, что понятно описал проблему.
Спасибо за внимание)
0
|
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
|
|
09.09.2019, 20:48 | 7 |
Бред бредовый. Лучшее описания проблема - её код, а еще лучше фрагмент с ошибкой и деталями (по типу вызова)
0
|
0 / 0 / 0
Регистрация: 14.03.2019
Сообщений: 57
|
|||||||||||||||||||||
11.09.2019, 21:16 [ТС] | 8 | ||||||||||||||||||||
Максимально тупой пример того, что мне надо. Основной код работает в реальном времени с сетью.
При выполнении функции 2-го класса параметры из 1-го недоступны оказываются. Статическими объявлять совсем не вариант. Я новичок в C++, передавать параметры другого класса не умею. Обычно в учебниках все в одном заголовочном файле классы описаны, а с отдельными я не могу разобраться. Class 1.h
0
|
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
|
||||||
11.09.2019, 21:23 | 9 | |||||
ma2loi, как по этих фрагментах без объяснений я должен понять где ошибка? На слове STOP?
Тогда этого мало, ты просто создал указатель в никуда (то есть null) и пытаешся из ничего (тобиш никуда) достать что-то (метод), так не бывает. Тебе нужно выделить память, вот так:
Странно конечно, умеешь работать с сетью, но не разбираешся в азах ООП на С++? Даже если сеть написана на чем-то другом, гугл же дает решения данной проблемы, выскочит же ошибка об обращении по несущестующему указателю (тобиш которые указывает в никуда).
0
|
0 / 0 / 0
Регистрация: 14.03.2019
Сообщений: 57
|
|
11.09.2019, 21:39 [ТС] | 10 |
Ошибки нет, функция в отладчике вызывает системную остановку на моменте сравнения с элементом 1-го класса, тк обращается к несуществующему объекту.
даже когда создаю объект 2 класса, все равно не ссылается, пишет в отладчике на нужном мне списке из 1-го класса QList<randObj> <unavailable synchronous data> в интернете ничего, решающего мою проблему, не нашел. Поэтому обращаюсь сюда за помощью. Надеюсь, что со мной какая-то проблема, а не лыжи не едут.
0
|
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
|
|
11.09.2019, 21:44 | 11 |
ma2loi, ты покажи мне конкрентно на каком фрагменте и какая строка являеться ошибкой, т.к. без выделения памяти у тебя ничего работать не будет
0
|
0 / 0 / 0
Регистрация: 14.03.2019
Сообщений: 57
|
|
11.09.2019, 21:55 [ТС] | 12 |
как-то так
0
|
0 / 0 / 0
Регистрация: 14.03.2019
Сообщений: 57
|
|
12.09.2019, 15:03 [ТС] | 14 |
Я разобрался, ошибка была в наследовании. Не указал родителя в main.cpp и не мог ссылаться.
Вместо class2 *cl2 = new class2(cl1) Писал: class2 *cl2 = new class2()
0
|
12.09.2019, 15:03 | |
Помогаю со студенческими работами здесь
14
Вызов функции из другого класса делегатом Вызов функции одного класса из другого Вызов функции public function из другого класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |