|
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
|
||||||
Инициализация указателей13.12.2007, 21:35. Показов 3576. Ответов 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
Инициализация массива указателей на указатель Инициализация указателей
Инициализация массива указателей на функцию Инициализация массива указателей на указатели Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|