Для нового языка это ничтожно мало. Можно сказать Вы ещё даже не попытались сделать самостоятельно, а уже на форуме. Зачем? Никто тут за Вас язык не выучит.
Я пишу и на С++ и на Java и на JS (и кцат на Питоне, но “тильки для сэбе” ). Больше всего на Java. И ничего. Просто переключаешься. Это как говорить на разных языках, но образ то в голове, а не на языке.
Ну мне 50 ))) Но я просто очень давно на JS сижу ( Скорее на ноде. ) Мне всеравно трудно будет взять и переформатировать мозг под решения с++ Немного иначе все определяется. Я прям путаюсь… Раньше надо было начинать.))))) Хотя это вначале было как хобби.
тогда пусть ардуинка будет для тебя детоксом!
Просто запомни, что в отличии от Java и JS, в С++ все параметры передаются ИСКЛЮЧИТЕЛЬНО по значению. Для знакомой тебе передачи “по ссылке” используется специальный тип “ссылка”. Как выглядит тебе прям готовые строки выше написал ЕП.
Ну и чем это виновато? Вот Вам текст на JS, раз уж Вы такой специалист.
//
// Создаём объект num
//
var num = new Number(123);
//
// Вызываем метод toString объекта num (печатается 123)
//
WScript.echo("num.toString()="+num.toString());
//
// Передаём созданный объект в качестве параметра
// конструктору MyObject
//
var obj = new MyObject(num);
//
// Инкрементируем местный num и печатаем,
// чтобы убедиться, что всё нормально
// (печатается 124)
//
num++;
WScript.echo("num="+num);
//
// А теперь печатаем в объекте MyObject (печатается 123)
// и видим, что он не изменился - остался 123.
// значит, num и obj.number - ЭТО РАЗНЫЕ ОБЪЕКТЫ!!!
//
WScript.echo("obj.number="+obj.number);
function MyObject(n) {
this.number = n;
}
Можете запустить. В любом случае изучите комментарии.
Так вот в С++ Вы сделали ровно то же самое. В итоге снаружи и внутри btn у Вас оказались РАЗНЫЕ ОБЪЕКТЫ. А Вы почему-то ждёте, что это один и тот же объект. Непонятно с чего бы. Как видите, в JS они вполне себе бывают тоже бывают разными! Непонятно, с чего Вас это смутило.