51 / 50 / 14
Регистрация: 17.11.2012
Сообщений: 427
|
||||||||||||||||
1 | ||||||||||||||||
Установить значение переменной из другого класса29.11.2013, 19:10. Показов 5678. Ответов 21
Метки нет (Все метки)
Всем здрасьте.
У меня есть 3 класса.Почти не как от друга не зависят. На скрине показана схемка. Так вот , в классе MENU у меня есть переменная name_slot типа LPCWSTR. Так же есть в классе функция взятие этой переменной:
Класс Conf у меня читает информацию с файла , которую надо записать в переменную name_slot. Вот функция в CONF классе :
Вот код с Engine Class :
"Начальное значение ссылки на неконстантный параметр должно быть левосторонним значением". Подскажите в чём проблема , или способ сделать это легче.
0
|
29.11.2013, 19:10 | |
Ответы с готовыми решениями:
21
Получить значение переменной из другого класса Получить значение переменной из другого класса Взятие значение переменной из другого класса. Получить значение переменной из метода другого класса |
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|
29.11.2013, 19:33 | 2 |
BeginerMan, я не сильно глубоко шарю, но подозреваю, что вся проблема зарыта в том, что GetName() возвращает объект, который скорее всего находится в поле private, а функция Initialize ожидает ссылку на этот объект, то есть ожидается возможность изменения возвращаемого объекта. Не хорошо как-то. Это была первая гипотеза.
Вторая состоит в том, что где-то в промежутке между ретурном и получением ссылки на объект есть какой-нибудь оператор копирования, который не разрешит нам так сделать(ну для стандартных типов операторов быть не может, потому не знаю как объяснить). Короче, я просто не сильно понимаю что происходит в момент возврата значения и на что должна указывать ссылка. как-то так
0
|
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|
29.11.2013, 20:10 | 4 |
alsav22, никак, я не предлагал решение) я сказал возможные места проблемы)
0
|
51 / 50 / 14
Регистрация: 17.11.2012
Сообщений: 427
|
|
29.11.2013, 20:15 [ТС] | 6 |
metaluga145, нет , в public'е весит эта функция.
alsav22, убрал & , таже проблема, таже ошибка.
0
|
51 / 50 / 14
Регистрация: 17.11.2012
Сообщений: 427
|
||||||
29.11.2013, 20:22 [ТС] | 8 | |||||
metaluga145, смотрите:
Добавлено через 29 секунд Прототипов нет.
0
|
51 / 50 / 14
Регистрация: 17.11.2012
Сообщений: 427
|
|
29.11.2013, 20:24 [ТС] | 10 |
А , стопэ , у меня ноут лагнул , извиняюсь , убрал ссылку , стало теперь нормально.
НО!!! мне нужно , чтобы я мог использовать переменную name_slot в классе Menu. А так я только передаю значение в класс Conf. Добавлено через 39 секунд На эту.
0
|
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|
29.11.2013, 20:27 | 12 |
BeginerMan, есть такая штука, как friend классы. можете почитать про это. это должно решить проблему, но вообще плохо, когда один класс умеет лазить во внутренности другого)
0
|
51 / 50 / 14
Регистрация: 17.11.2012
Сообщений: 427
|
|
29.11.2013, 20:34 [ТС] | 13 |
metaluga145, я знаю про friend. не хочу из-за одной переменной ломать систему.
Добавлено через 5 минут А если изменю на LPWSTR , что-то измениться ? Я и забыл что LPCWSTR это константа ...
0
|
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|
29.11.2013, 20:34 | 14 |
BeginerMan, можете создать set-функцию, которая будет устанавливать значение данной переменной. По другому врядли можно сделать.
0
|
51 / 50 / 14
Регистрация: 17.11.2012
Сообщений: 427
|
|
29.11.2013, 20:39 [ТС] | 16 |
Ну так , передавая значение из первой функции во вторую функцию, без ссылки, я не смогу сделать так , чтобы в первой функции он принял то значение, которое было присвоено во второй.
Добавлено через 1 минуту Так стоп , я сейчас объясню подругому , а то так до ночи дойдёт. Добавлено через 37 секунд metaluga145, да да , я уже начал работать над этим , но я хочу разобраться с этим.
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
29.11.2013, 20:42 | 17 |
Вы передаёте указатель, а не просто переменную. Все изменения того, что содержится по этому указателю, сохранятся. Единственное что нельзя сделать, это изменить значение самого указателя (для этого нужна ссылка на указатель).
Добавлено через 1 минуту Вам же содержание строки, с которой связан этот указатель, нужно менять?
0
|
51 / 50 / 14
Регистрация: 17.11.2012
Сообщений: 427
|
|
29.11.2013, 20:44 [ТС] | 18 |
В классе Menu есть переменная name_slot типа LPWSTR. Я хочу её вывести на экран. Но мне выдаст ошибку : "Переменная name_slot без инициализации.". Так вот , это переменную мне надо инициализировать в другом классе , в данном случае Conf
Я уже приводил пример: Если думать что c и d это не int а LPWSTR. Добавлено через 1 минуту Да да , эту строку , которую я передаю , нужно ей присвоить значение в функции Initialize в классе Conf
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
29.11.2013, 20:47 | 19 |
С какой стати это думать? Передавайте адреса переменных, тогда это будет похоже на LPWSTR.
Добавлено через 1 минуту Не по теме: Это уже начинает надоедать... Присваивайте, что мешает? Память под указатель выделена?
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
29.11.2013, 20:51 | 20 |
alsav22, у него там похоже неинициализированная ссылка болтается полем класса.
BeginerMan, а вообще такие косвенные зависимости "изменили в одном месте - огребли в другом" ни к чему хорошему не приводят. Добавлено через 2 минуты Хотя черт его знает... Автор, минимальный и достаточный пример, на котором воспроизводится ошибка - в студию.
0
|
29.11.2013, 20:51 | |
29.11.2013, 20:51 | |
Помогаю со студенческими работами здесь
20
Как получить значение переменной из другого класса? Как вызвать значение переменной из другого класса? Получить значение non-static переменной из другого класса Как присвоить значение из JTextField переменной другого класса? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |