32 / 4 / 0
Регистрация: 22.06.2011
Сообщений: 88
|
||||||
1 | ||||||
функция с инкрементом объекта. ++22.06.2011, 14:04. Показов 2055. Ответов 15
Метки нет (Все метки)
Доброго времени суток.
Прошу помочь в реализации функций.
Но тут инкремент только на один шаг срабатывает и виснет. Как правильно должна выглядеть функция?
1
|
22.06.2011, 14:04 | |
Ответы с готовыми решениями:
15
Помогите чайнику с инкрементом... Скобки не работают с постфиксным инкрементом Объяснить разницу между префиксным и постфиксным инкрементом на простых примерах Виртуальная функция и возврат объекта класса |
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
||||||
22.06.2011, 14:23 | 2 | |||||
Переменная Point передаётся по значению, поэтому все изменения пропадают при выходе из функции.
попробуй по ссылке передать
1
|
32 / 4 / 0
Регистрация: 22.06.2011
Сообщений: 88
|
|
22.06.2011, 14:32 [ТС] | 3 |
Большое спасибо, а можешь в теорий объяснить что к чему?
А то я хочу понять, почему с простыми типами изменения не проподают, а с объектами удаляются? А можете тоже самое реализовать с помощью указателей? (у меня не совсем верно получается)
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
22.06.2011, 14:35 | 4 | |||||
vendeme, С простыми тоже пропадают.
Добавлено через 1 минуту
1
|
32 / 4 / 0
Регистрация: 22.06.2011
Сообщений: 88
|
||||||
22.06.2011, 14:46 [ТС] | 5 | |||||
Хм, проверил, и в правду так.
Я конечно ссылки не очень изучал, но:
{ test(x); } почему x не возрастает? По идее же за блок не выходит. Вроде функция должна просто увеличивать СТАРОЕ число. ..
0
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
22.06.2011, 14:50 | 6 |
При вызове функции test в неё передаётся значение переменной x, и дальше функция изменяет копию переменной x (с именем t) а не саму эту переменную. При выходе из функции копия разрушается, а значение переменной x так никогда и не изменится.
0
|
32 / 4 / 0
Регистрация: 22.06.2011
Сообщений: 88
|
|
22.06.2011, 14:52 [ТС] | 7 |
ааа, тоесть в test нужно return t добавить. Или же просто через &
0
|
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
|
|
22.06.2011, 14:53 | 8 |
если очень хочется, что бы переменная изменялась - передавай с использованием &
test ( &x ) {} есессно функцию так же объявлять с & Добавлено через 34 секунды return не будет изменять переменную. можно завести новую, которая будет принимать значения, возвращаемые функцией
0
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
||||||
22.06.2011, 14:54 | 9 | |||||
Можно return, но тогда всё будет выглядеть по другому.
0
|
22.06.2011, 18:11 | 10 | |||||
Судя по первому посту переменная COORD Coordinate - глобальная. Зачем вообще что-то куда-то передавать?
0
|
32 / 4 / 0
Регистрация: 22.06.2011
Сообщений: 88
|
|
22.06.2011, 18:39 [ТС] | 11 |
А если этих объектов у меня МНОГО?
Я создал эту функцию чтобы инкремировать объектЫ.
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
22.06.2011, 22:21 | 12 |
Сообщение было отмечено как решение
Решение
vendeme, Товарищ, быдлокодер - это вы. Т.к. вы сами создали глобальную переменную. Вам просто указали как проще работать с глобальной переменной. Глобальные переменные сами по себе зло, особенно там где они не нужны. Запомните.
3
|
32 / 4 / 0
Регистрация: 22.06.2011
Сообщений: 88
|
|
23.06.2011, 02:09 [ТС] | 13 |
Я же для примера выложил в виде глобального.
0
|
silent_1991
|
||||||
23.06.2011, 02:30
#14
|
||||||
3
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
23.06.2011, 10:00 | 15 | |||||
vendeme, Человек, пишущий код для примера разве будет использовать то, что не использует в обычной жизни? В таком ключе я могу написать такой код для примера.
0
|
32 / 4 / 0
Регистрация: 22.06.2011
Сообщений: 88
|
|
23.06.2011, 17:27 [ТС] | 16 |
ForEveR, Рекомендую тебе разобраться в себе. Конечно, ты это сейчас не воспримешь всерьёз, но через неделю ты это заметишь. (печень..)
Всем огромное спасибо, с проблемой разобрался. Форум отличный, буду обращаться.
0
|
23.06.2011, 17:27 | |
23.06.2011, 17:27 | |
Помогаю со студенческими работами здесь
16
Функция вне класса для передачи функции объекта Какая функция объекта cin позволяет вставить символ в поток ввода? replace..select с инкрементом полей Массив с инкрементом =1 заполнить по спирали Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |