Передача по ссылке в класс

Тема в разделе "Arduino & Shields", создана пользователем Patriot, 18 сен 2015.

  1. Patriot

    Patriot Нерд

    Как передать объект по ссылке или указателю в класс? Что-то не получается. Делаю так:

    main.cpp:
    Код (C++):

    TEST test(&Serial);
     
    TEST.h:
    Код (C++):

    #ifndef TEST_h
    #define TEST_h
    #include "Arduino.h"
    class TEST{
    public:
    TEST(HardwareSerial*);
    private:
    HardwareSerial& port;
    };
    #endif
     
    TEST.cpp:
    Код (C++):

    #include "TEST.h"
    TEST::TEST(HardwareSerial* t){
    port = t;
    }
     
    Что не правильно делаю?? Нужно Сериал перекинуть в класс, да и не только сериал, а еще другие объекты, без их копий.
     
  2. Patriot

    Patriot Нерд

    Сам же разобрался:

    main.cpp:
    Код (C++):

    TEST test(Serial);
     
    TEST.h:
    Код (C++):

    #ifndef TEST_h
    #define TEST_h
    #include "Arduino.h"
    class TEST{
    public:
    TEST(HardwareSerial&);
    private:
    HardwareSerial& port;
    };
    #endif
     
    TEST.cpp:
    Код (C++):

    #include "TEST.h"
    TEST::TEST(HardwareSerial& t):port(t){
    // ...
    }
     

    Вдруг кому пригодиться :)
     
  3. Megakoteyka

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

    В первом случае port должен быть указателем.
     
  4. Patriot

    Patriot Нерд

    Так тоже не работало, пробовал в первую очередь:)