|
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
|
||||||
Инициализация указателей13.12.2007, 21:35. Показов 3580. Ответов 9
Метки нет (Все метки)
Проблема: Объявил указатель TMatrix *M в секции private: класса, напр., MyClass, а инициализировал их в функции, объявленной в секции public: того же класса. В результате выполнения кода
Пришлось переопределять конструктор класса, чтобы туда можно было передавать параметром размеры матрицы. PS: Это не есть большая проблема, но хотелось бы получить разъяснения от более опытных людей...
0
|
||||||
| 13.12.2007, 21:35 | |
|
Ответы с готовыми решениями:
9
Инициализация указателей Инициализация массива указателей в классе Задание размера и инициализация массива указателей в конструкторе |
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 14.12.2007, 10:06 | |
|
а можно продемонстрировать кодами все это, а то не осилил...
0
|
|
|
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
|
||||||||||||||||
| 15.12.2007, 18:05 [ТС] | ||||||||||||||||
|
Header:
Оператор delete можно опустить... Смысл в том, что внутри функции SetMatr(...) проинициализированная матрица М (объявленная глобально в классе) валидна, но за ее пределы она передается с нулевыми значениями. Вот так... ![]() PS: в синтаксисе я мог и напутать, т.к. исходники на работе
0
|
||||||||||||||||
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
||||||
| 16.12.2007, 10:41 | ||||||
|
чтобы матрица была видна в любом методе класса, ее создание должно находится в конструкторе класса...
а для второго метода я бы сделал так:
0
|
||||||
|
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
|
|
| 21.12.2007, 22:16 [ТС] | |
|
Не понял я чето...
Инициализация матрицы M с параметрами, которые не переданы (в заголовке функции теперь же нет матрицы Мat). К тому же эта инициализация идет после оператора return (он же завершит выполнение функции) Еще я не понимаю что таким образом будет результатом функции? Матрица проинициализируется и будет передана пустой? Через эту функцию с использованием критических секций я планировал перезаписывать элементы разделяемой между потоками матрицы...
0
|
|
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
||
| 23.12.2007, 12:59 | ||
|
0
|
||
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|||||||||||
| 23.12.2007, 13:02 | |||||||||||
|
а еще твой код:
0
|
|||||||||||
|
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
|
|
| 25.12.2007, 21:05 [ТС] | |
|
Про return... Меня смущает то, что он в начале функции стоит. После него ведь больше ничего не выполнится... Он завершит выполнение функции, и какой тогда смысл был оставлять что-либо после него?
Твоя,WooDooMan666, "перепись" лишила функцию заложенного в нее смысла.. У меня было два потока, и оба могут и читать и писать в общую матрицу. В функции этой я хотел реализовать работу с критической секцией, но все слишком запутал с этими задумками... Получилось, что сама матрица внутри содержит КС, а потом еще снаружи одна... к тому же и сама КС эта использовалась для доступа к другим объектам... В общем я пока отложил создание многопоточной проги... Вот в основных алгоритмах ошибки исправлю и буду пробовать мультитрид... Может потом и в Линух попрусь с немытыми лапами... Мне бы тока удобочитаемый самомучитель найти по програмированию в Линухах (им. в виду работу с ядром, а не гламур какой с Qt или WxWidgets; не в них проблема)
0
|
|
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 26.12.2007, 09:37 | |
|
просто твоя задумка про мультипоточность в такой задаче лишена смысла, потому что я слабо представляю смысл многопоточной записи в одну матрицу... хотя у каждого своя голова на плечах, я когда-то точно также изголялся с многопоточным калькулятором ггггг.... да и критические секции надо использовать осторожнее, они же притормаживают работу проги...
0
|
|
|
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
|
|
| 17.01.2008, 10:43 [ТС] | |
|
Все правильно... Все картины я просто изложить не смог, пока сам был в процессе...
Вот концепция... Три потока: 1) первый - назовем InThread - формирует входной вектор (данные для обработки) 2) второй - CffThread - формирует и накладывает помеху 3) третий - KalmThread - реализует фильтр Калмана и выдает данные в InThread Смысл в том, что Фильтр Калмана требует больших вычислительных затрат, и два других потока должны быть в слипе пока он не обсчитает все. Передача данных само собой должна производиться либо через критические секции, либо с использованием методики "Synchronize". В общем говоря, InThread сделал вектор и записал его в CffThread (при этом должен спросить сначала "отпустило" ли этот поток с момента передачи предыдущей порции), а тот формирует данные с помехой, и спрашивает KalmThread проглотил ли он предыдущую порцию хавки. KalmThread жует все что ему дали, а в конце отправляет данные в InThread или сигналит ему, чтоб забрал с него (пока не заберут не писать в выходной буфер ничего - но врядли он окажется быстрее InThread'а). В общем алгоритм такой вот сложный для обеспечения некоей универсальности и гибкости. Нужен он для моделирования работы цифровых фильтров. Если кто занимается тем же, милости просим пообщаться...
1
|
|
| 17.01.2008, 10:43 | |
|
Помогаю со студенческими работами здесь
10
Инициализация массива указателей на указатель Инициализация указателей
Инициализация массива указателей на функцию Инициализация массива указателей на указатели Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|