Название: Переменная класса - не могу понять почему не сохраняется? Отправлено: UVD от Июнь 18, 2016, 14:31 объявляю в классе переменную saldocredit и метод Add
Код: class Schet { далее есть пременная Код: Schet s01; так вот при каждом обращении к методу s01.Add переменная saldocredit все время имеет нулевое начальное значение а мне хотелось бы чтобы она помнила свое предыдущее значение в С недавно поэтому полдня голову ломаю как быть, help! Название: Re: Переменная класса - не могу понять почему не сохраняется? Отправлено: gil9red от Июнь 18, 2016, 15:11 Это с++, а не си. В си нет class.
И код работает: Код
И saldocredit = saldocredit + summ; можно заменить на более короткий аналог: saldocredit += summ; Название: Re: Переменная класса - не могу понять почему не сохраняется? Отправлено: UVD от Июнь 18, 2016, 15:51 да я в курсе про +=, но уже настолько все достало, чтто заменил явным вызовом
у меня не работает, например если заменить double saldocredit = 0; на double saldocredit = 1; то все время будет равна 1 меттод Add вызывается из других методов класса, может поэтому? Название: Re: Переменная класса - не могу понять почему не сохраняется? Отправлено: kambala от Июнь 18, 2016, 15:54 покажи использование переменной Schet s01; — подозреваю, что ты ее постоянно пересоздаешь
Название: Re: Переменная класса - не могу понять почему не сохраняется? Отправлено: UVD от Июнь 18, 2016, 16:27 если обращась из класса ProvodkaRecord, то не сохраняется!
Код: class ProvodkaRecord { Код: ///и вызов - снятьь с s01 и добавить к s10: если напрямую к переменной класса Schet, то все ОК Код: s01.Vnesti(5200); Название: Re: Переменная класса - не могу понять почему не сохраняется? Отправлено: Bepec от Июнь 18, 2016, 17:06 У вас копирование происходит. Чтобы изменять в том же объекте, нужно передавать указатель, например :)
Название: Re: Переменная класса - не могу понять почему не сохраняется? Отправлено: UVD от Июнь 18, 2016, 17:13 постепенно я начинаю понимать ::)
однако как это должно быть написано? ??? Название: Re: Переменная класса - не могу понять почему не сохраняется? Отправлено: UVD от Июнь 18, 2016, 17:20 все! спасибо!! :D
Код: public: вызов Код: MyProvodkiList.AddProvodka(&s01, &s10, 1200); Название: Re: Переменная класса - не могу понять почему не сохраняется? Отправлено: kambala от Июнь 18, 2016, 20:38 вместо указателя можно и по ссылке передавать, тогда будет
Код
Название: Re: Переменная класса - не могу понять почему не сохраняется? Отправлено: UVD от Июнь 19, 2016, 05:37 да, действительно, так понятней - переделал :)
пришлось только заменить fromschet->Snyat(summ); на fromschet.Snyat(summ); не могу понять когда должно быть -> и когда . просто делаю, что компилятор говорит :( з.ы. надо же, вчера часов шесть времени и килограмм нервов убил только на то, чтобы понять, что аргументты копирутся, и нужно ссылку передавать до сих пор страшно вспомнить :-X Название: Re: Переменная класса - не могу понять почему не сохраняется? Отправлено: Vamireh от Июнь 19, 2016, 11:39 -> - когда указатель
. - когда по ссылке или по значению. Это, если по-дилетантски. А вообще, стрелка - оператор разыменования. Можно писать просто (*var).foo(), а var->foo() - вроде сокращенной записи. Еще прикольно умные указатели: там и точка, и стрелка... Название: Re: Переменная класса - не могу понять почему не сохраняется? Отправлено: kambala от Июнь 19, 2016, 13:41 з.ы. надо же, вчера часов шесть времени и килограмм нервов убил только на то, чтобы понять, что аргументты копирутся, и нужно ссылку передавать а надо всего-то С++ изучать, а не тыкаться, как слепой котенокдо сих пор страшно вспомнить :-X |