4 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
|
|
1 | |
Динамический массив как глобальная переменная22.03.2012, 14:35. Показов 11384. Ответов 35
Метки нет (Все метки)
Доброго времени суток, даже с google никак не смогу разобраться со следующей задачей:
Хочу объявить матрицу(matrix допустим) глобальной переменной в классе, её размерность x,y тоже глобальные переменные этого класса, которые задаются через слот(функцию) этого класса, тобишь при компиляции размерность массива matrix ещё не известна. Как можно объявить matrix глобальным? Заранее огромное спасибо!
0
|
22.03.2012, 14:35 | |
Ответы с готовыми решениями:
35
Глобальная переменная определена в хидере. Компилятор ругается на то, что переменная переопределена несколько раз Глобальная переменная(не пойму как точно сделать) Глобальная переменная Глобальная переменная |
4 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
|
|
22.03.2012, 18:29 [ТС] | 21 |
"x и y не инициализированы" не правда
задание: нужно, чтобы этот проект скомпилировался, причём все три функции per() srav() и maincount() отработали с массивом a, как в проекте
0
|
22.03.2012, 18:57 | 22 |
Еще раз. a - не массив. Это функция.
Насчет не инициализированы - погорячился, не увидел ui -> XSpinBox -> value(). Глобальная переменная - чушь. Засуньте ее в класс, сделайте статичной, что угодно, но не оставляйте просто так. За счет того, что у вас values.h включается раза 2 минимум происходит множественное объявление **mass.
1
|
4 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
|
|
22.03.2012, 19:19 [ТС] | 23 |
пардон за "не правда", я имел ввиду "неправда"
мне такой код сюда скинули, я же говорю, что не понимаю как реализовать задачу
0
|
22.03.2012, 20:17 | 24 |
Zeka13, тут не подойдут ни глобальные, ни статические в классе переменные. У меня получилось сократить максимум до одного множественного определения, путем уделения ненужных файлов + запихивания все в два хедера.
1
|
4 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
|
|
22.03.2012, 20:45 [ТС] | 25 |
вот компилирующийся проект
в Values.h исчерпывающий комментарий
0
|
22.03.2012, 21:23 | 26 |
Zeka13, дак вы же хотели глобальный. Если не нужен глобальный, то делаете указатель на указатель, затем, если в конструторе известны x и y(мельком глянул) выделяете в нем память, в деструкторе освобождаете. Если не известны, то по аналогии с примером Infinity3000
1
|
4 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
|
|
22.03.2012, 21:41 [ТС] | 27 |
вы же видели, что у меня не получилось по аналогии
0
|
4 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
|
|
23.03.2012, 09:46 [ТС] | 29 |
спасибо огромное, буду разбираться!
0
|
4 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
|
|
24.03.2012, 13:54 [ТС] | 30 |
немного поправил, посмотрите пожалуйста
было http://paste.ubuntu.com/897593/ стало http://paste.ubuntu.com/897594/
0
|
24.03.2012, 14:06 | 31 |
Zeka13, во втором варианте, если не будет вызываться setValues(), то будет освобождение памяти по не валидному указателю. Имхо, не есть хорошо, но если гарантируется, что setValues() вызовется, то не страшно. А так вроде все то-же самое. А какой вопрос был?
1
|
4 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
|
|
24.03.2012, 14:12 [ТС] | 32 |
вы исчерпывающе ответили на него, ещё раз огромное спасибо
0
|
24.03.2012, 14:12 | 33 |
Ах да, если будет повторно вызвана функция setValues(), то будет снова выделена память. Я в ui не вникал, так что если где-то есть вероятность повторного вызова setValues(), то будут неприятности.
0
|
4 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
|
|
24.03.2012, 14:22 [ТС] | 34 |
оу, об этом я не подумал, спасибо, перестрахуюсь тогда!
0
|
4 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
|
|
13.05.2012, 21:08 [ТС] | 35 |
а почему delete[] a; только в деструкторе?
0
|
4 / 8 / 0
Регистрация: 22.03.2012
Сообщений: 135
|
|
14.05.2012, 11:15 [ТС] | 36 |
а ещё программа вылетает, если завести второй такой массив!
0
|
14.05.2012, 11:15 | |
14.05.2012, 11:15 | |
Помогаю со студенческими работами здесь
36
Глобальная переменная Глобальная переменная Глобальная переменная из другой dll Глобальная переменная локальной видимости Не определяется глобальная переменная внутри функции Глобальная переменная не читается в новом потоке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |