Russian Qt Forum
Ноябрь 24, 2024, 11:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Связь между модулями  (Прочитано 5731 раз)
Raumnur
Гость
« : Июль 21, 2016, 11:38 »

Всем привет. Есть модуль MainWindow.cpp и подключаю стороний хедер ideal.h с cpp-шником ideal.cpp.
В подключенном хедере(ideal.h) объявлен вектор в private. SPoint кстати говоря структура.
Код:
std::vector<SPoint> recv[3][COUNT_UMP];

Вопрос: как мне наладить связь между модулями, чтобы  допустим по клику баттона передавать данные из данного вектора на MainWindow?
Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #1 : Июль 21, 2016, 12:22 »

В ideal.h должны быть публичные геттеры для этого вектора, вот их и используй.
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
Raumnur
Гость
« Ответ #2 : Июль 21, 2016, 14:10 »

В ideal.h должны быть публичные геттеры для этого вектора, вот их и используй.

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

Код:
class Ideal
{
public:
    Ideal(unsigned int c_point);
    virtual ~Ideal();
    void updatebyFreq(unsigned int i_freq);
    void updatebyMode(unsigned int mode);
    void updatebyInterval(double interval);
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #3 : Июль 21, 2016, 14:32 »

Что это вообще за API? от какого девайса?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Bepec
Гость
« Ответ #4 : Июль 21, 2016, 14:39 »

Ну для этого вам как минимум придётся редактирвоать cpp-шник и ашник вашего ideal. Либо писать свои геттеры сеттеры, либо выносить вектор в паблик. Если же данный класс будет использован в библиотеке, вы уже ничего отредактировать не сможете и ... ну и всё Веселый
Записан
Raumnur
Гость
« Ответ #5 : Июль 21, 2016, 16:35 »

Тогда такой вопрос, возможно ли написать геттер который вернет массив?
Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #6 : Июль 21, 2016, 16:59 »

Тогда такой вопрос, возможно ли написать геттер который вернет массив?
Многомерные массивы проблематично возвращать. Проще геттер для элемента массива написать. И даже наверное так лучше будет.
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
Raumnur
Гость
« Ответ #7 : Июль 21, 2016, 17:05 »

Многомерные массивы проблематично возвращать. Проще геттер для элемента массива написать. И даже наверное так лучше будет.

Мне по сути нужно будет вернуть одномерный массив. Но тут еще другая проблема. Написал геттер, дальше в обработчике по клику мыши присваиваю переменной и программа вылетает...
Код:
double Ideal::GetAdb(unsigned int Canel, unsigned int Num, unsigned int Point)
{
   return recv[Canel][Num][Point].A;
   
}

Выносил в паблик массив, все работает, с геттером-не хочет
« Последнее редактирование: Июль 21, 2016, 17:06 от Raumnur » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #8 : Июль 22, 2016, 08:28 »

Многомерные массивы проблематично возвращать. Проще геттер для элемента массива написать. И даже наверное так лучше будет.

Мне по сути нужно будет вернуть одномерный массив. Но тут еще другая проблема. Написал геттер, дальше в обработчике по клику мыши присваиваю переменной и программа вылетает...
Код:
double Ideal::GetAdb(unsigned int Canel, unsigned int Num, unsigned int Point)
{
   return recv[Canel][Num][Point].A;
   
}

Выносил в паблик массив, все работает, с геттером-не хочет

Наверное падает из-за выхода за пределы массива или указатель, возвращаемый recv[Canel][Num][Point] оказался пустой
Записан

Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #9 : Июль 22, 2016, 09:10 »

..и программа вылетает...
..
...с геттером-не хочет
Тема навевает грусть и меланхолию. Такие вещи не на форуме надо спрашивать, а отлаживать, смотреть валидны ли все 3 индекса в отладчике и/или печатать их в консоли.   
Записан
Bepec
Гость
« Ответ #10 : Июль 22, 2016, 10:11 »

А ещё лучше приводить код Веселый
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.071 секунд. Запросов: 23.