Почему экземпляр класса нужно создавать вне функции setup()

Тема в разделе "Arduino & Shields", создана пользователем petypen, 21 мар 2016.

Метки:
  1. petypen

    petypen Нерд

    Коллеги, добрый день.
    Подскажите, с чем связано то, что экземпляр класса в программах для Arduino создаётся не в функции setup() а на глобальном уровне, если можно так сказать. Вот типовой пример:

    Код (C++):
    #include <SPI.h>
    #include <RFID.h>

    #define SS_PIN 10
    #define RST_PIN 9

    RFID rfid(SS_PIN, RST_PIN);

    void setup()
    {
      SPI.begin();
      rfid.init();
    }
    почему нельзя (не принято) писать так:

    Код (C++):
    #include <SPI.h>
    #include <RFID.h>

    #define SS_PIN 10
    #define RST_PIN 9

    void setup()
    {
      SPI.begin();
      RFID rfid(SS_PIN, RST_PIN);
      rfid.init();
    }
    Буду благодарен за совет или ссылку.
     
  2. Во втором варианте rfid - локальная переменная ф-ии setup(), после выхода из нее она перестает существовать
     
    Tomasina нравится это.
  3. Megakoteyka

    Megakoteyka Оракул Модератор

    Можно создавать объект внутри функции при условии, что после выхода из функции объект больше не нужен.
     
  4. petypen

    petypen Нерд

    И правда, ответ оказался очень прост.
    Спасибо большое за помощь.