Всем доброго дня. Кто нибудь на ардуине классы писал? можете помочь у меня пишет что класс не декларирован void setup() { Test aa(); } void loop() { } class Test{ public: Test(){ } void setA(int a){_a=a;} int getA(){return _a;} private: int _a=3; }; вот такое пишет exit status 1 'Test' was not declared in this scope

Комментарии: 70

  1. Aleksandr

    Так ты либо прототип напиши, либо объяви его раньше

    • Igor

      подскажи где и как

  2. Roman

    нахера ты классы используешь а

  3. Ratmir

    бред написал, а не класс. class Test { public: Test(); void setA(int a); int getA(); private: int _a; }; class Test { Test::Test(){_a=3;} void Test::setA(int a){_a=a;} int Test::getA(){return _a;} } учись классы писать. гугли доки с++

    • Roman

      зачем классы в ардуино?

      • Alexey

        Удобно иногда. Например статический класс чтобы не засирать все глобалками.

      • Ratmir

        у меня на esp их, пока что, 3. и что?

    • Igor

      а можно сказать что с классом не так?

      • Vasiliy

        Ребят всем привет вопрос на засыпку void setup() { Serial.begin(57600); byte a; a=60; Serial.println(String(a*1000)); } void loop() {}

      • Ratmir

        ты декларацию с реализацией смешал. ещё раз говорю: кури доки с++

        • Vasiliy

          Вы знаете что в консоль выведет ? )

          • Ratmir

            букву или цифру

            • Vasiliy

              число а теперь угадайте какое

              • Ratmir

                лень считать

          • Alexey

            -27233

            • Anonim

              60000

              • Vasiliy

                нет -5536 а теперь вопрос... какого сбстна х.я

                • Roman

                  ибо нехуй

                  • Vasiliy

                    че за дичь такая я понимаю что в инт переводит знаковый

                    • Roman

                      длина байта

                      • Vasiliy

                        но блин - этож капец как не правильно нельзя сделать чтоб хотя бы в unsigned int переводил ?

                        • Roman

                          переведи

                          • Ratmir

                            ты дурак и байт сравниваешь с инотом вот вся проблема

                            • Vasiliy

                              так это ладно я тут случайно заметил - целый день убил на это... а в других местах

                            • Vasiliy

                              причем тут сравниваю = у меня банально условие не проходит byte a=30; if (a*1000>20000) {....} не срабатывает

                              • Ratmir

                                потому что это байты, а не инты. олух

                                • Vasiliy

                                  байты инты... в условии то какая разница

                                • Roman

                                  ходишь по тонкому льду

                                  • Vasiliy

                                    чет я не видел в других ЯП такой дичи

                        • Andrey

                          ну так напиши явно typecast

                    • Alexey

                      Числа считаются с начала диапазона. Если брать 16-битные инты, то Unsigned = 0,1,2,3,4...65535; Signed = -32768, -32767, -32766, ...+32767 Последний бит (самый левый) отвечает за знак. Соответственно число больше 32767 ( последний бит = 1 ) при рассмотрении его двоичной формы как знаковой, будет отрицательным. Это значит что оставшиеся 15 битов - это количество которое надо отсчитать от минимума (т.е. от -32768) 60k = 1110 1010 0110 0000 1 бит знаковый, остается 110 1010 0110 0000 = 27232 Выводит оно -32768 + 27232 = -5536

                      • Orca

                        Всё таки не лень посчитать. Красавчик! В postgresql надысь тоже тип подбирал. SmallInt 16-битный именно такой диапазон может хранить. Челу, походу сложно 2**16 возвести =) Как, бля люди программируют контроллеры, не вкуривая за структуры данных. Это ж просто копипаста со стековерфлоу.

                        • Teegeron

                          Гайвер всему вина А если серьезно, то нормально вкурил все типы данных через 2 года после того как познакомился с Ардуино. С книжки. А все потому что обучение идет по видосах с ютуба, где снимают "для маленьких и глупых", не нагружая лишней инфой. Для простоты и роста аудитории. Зачем понимать какая переменная знаковая, а какая - нет? Заучи себе юзать инт всегда, пока не столкнешься с огромным числом. А там просто uint заюзай, не спрашивай, просто так надо.

                          • Orca

                            Так то, может и есть. Думаю, что хотят всё и сразу. Волшебный чекбокс в настройках среды. Мол Урри, где у него эта кнопка? =)

                            • Remen

                              Да, удивительное сочетание высокоуровневой электроники и низкоуровнего программирования...

                            • Teegeron

                              Это от части хорошо. Типа они показывают, что даже если ты полное дно - у тебя может что-то получиться. Порог входа очень низкий, учись только копипастить и искать инфу. Но потом, у таких "программисторов" дикие пробелы в базе, о которых они не догадываються вообще. Ну, я сужу по себе. Начать с Арду было прикольно, это зажгло огонь кодить, позже - изучать ++, но пробелы в знаниях я заполняю до сих пор, хотя чисто формально я с год назад закончил видеокурсы по с++ включая ооп. Узнавая о структуре программ, данных, записи в память, о самой памяти и куче еще всего - буквально в последние пол года с книжки Столярова.

                              • Orca

                                Весьма зачётный дядька. Тоже почитывал. Паскаль почти весь из 1 тома прошёл, потрогал асм и си и пошёл дальше Python'а мучить =)

                              • Orca

                                А что за курсы? Сам на степике и курсере проходил. На курсере офигенный курс начал, про обработку звука в опенсорцном аудиоредакторе. Но как до рядов Фурье дошло, я понял что это за вызов

                                • Anonim

                                  Из интересного, могу дать инвайт на полный курс Яндекс практикум Дата-Аналитик. Курс, правда, относительно платного немного порезан, но за бесплатно супер)

                                  • Orca

                                    Спасибо, конечно, но пока асинхронщине, многопоточности и процессорности не научусь, что б прям от зубов, к бигдате не притронусь =)

                          • Alexander

                            Нет

                            • Teegeron

                              Да на ютубе, от Simple Code Сжечь!

                              • Alexander

                                Документация к языку это слишком просто. Изучай методом тыка

                                • Teegeron

                                  Согласен, 3й глаз еще никому не мешал. Наверное.

                            • Roman

                              !burn

        • Igor

          ок но я читал вот тут https://alexgyver.ru/lessons/class/

          • Vasiliy

            не сравниваю

          • Roman

            читай страуструпа, а не еблана

            • Igor

              смело я немного другого мнения про Алекса Гавера учитывая то что он делал и делает и количество его работ с ардуино. Ладно покурим доки с++

              • Roman

                количество != качество

                • Vasiliy

                  точно нет никаких настроек IDE чтоб в беззнаковый инт переводило ?

                  • Roman

                    бля

                  • Roman

                    иди почитай про типы данных. желательно на офсайте ардуино.

          • Ratmir

            мб бред написан. читай с++

Не нашли ответ?

Вам также может быть интересно