Доступ к экземпляру класса из другого класса

Ну, я Вам уже написал как, только дальше с ним нужно аккуратно обращаться, а Вы его локальному объекту присваиваете. Зачем?

В строке №11 (как я Вам уже говорил) пишете

    btn( int pin, String name, SocketIOclient & socketIO );

а в строке №23

SocketIOclient & _socketIO;

наконец, в строке №5 .cpp файла

btn::btn( int pin, String name, SocketIOclient & socketIO ) : _socketIO(socketIO ) {

ну, а строку №12 .cpp файла, удаляете нахрен.

И да прибудет с Вами Сила.

Для нового языка это ничтожно мало. Можно сказать Вы ещё даже не попытались сделать самостоятельно, а уже на форуме. Зачем? Никто тут за Вас язык не выучит.

1 лайк

Спасибо всем. Буду мучать. Извините если была грубость с моей стороны. Для меня уже тяжко мозг переформатировать.

Так чё, заработало как я сказал?

1 лайк

Мне 55… и весь наш форум примерно такой.

Я пишу и на С++ и на Java и на JS (и кцат на Питоне, но “тильки для сэбе” :wink: ). Больше всего на Java. И ничего. Просто переключаешься. Это как говорить на разных языках, но образ то в голове, а не на языке.

1 лайк

Извините. мне тут надо по работе немного поделать. 20 мин и начну.

Ну мне 50 ))) Но я просто очень давно на JS сижу ( Скорее на ноде. ) Мне всеравно трудно будет взять и переформатировать мозг под решения с++ Немного иначе все определяется. Я прям путаюсь… Раньше надо было начинать.))))) Хотя это вначале было как хобби.

тогда пусть ардуинка будет для тебя детоксом! :wink:
Просто запомни, что в отличии от Java и JS, в С++ все параметры передаются ИСКЛЮЧИТЕЛЬНО по значению. Для знакомой тебе передачи “по ссылке” используется специальный тип “ссылка”. Как выглядит тебе прям готовые строки выше написал ЕП.

1 лайк

Ну и чем это виновато? Вот Вам текст на 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 они вполне себе бывают тоже бывают разными! Непонятно, с чего Вас это смутило.

1 лайк

Спасибо Вам большое Все получилось. И Спасибо за то что сказали что уж обрашаться надо по другому. Я бы не вычитал это быстро.

Я понял о чем Вы. В моем случае не имея базовых знаний я и задаю такие дурацкие вопросы и делаю такие ошибки. Спасибо большое.