Поделиться объектом между членами

Я пытаюсь заставить следующий пример кода работать. Я прочитал несколько уроков и Q&А, но я не могу заставить его работать. По всей вероятности, мое понимание классов не хватает, но я учусь на практике. Надеюсь, я никого не оскорбляю 🙂

Я работаю над последовательным портом связи и пытаюсь использовать версию этой библиотеки с обратным вызовом:
http://www.webalice.it/fede.tft/serial_port/serial_port.html

Конкретный вопрос в закомментированном коде.

ОБНОВЛЕНО — Я понял, код ниже работает 🙂

Вот файл SerialPort.h:

#include "AsyncSerial.h"
class SerialPort
public:
void portOpen();
void portWrite();
private:
CallbackAsyncSerial serial;
};

И SerialPort.cpp:

#include "SerialPort.h"
void SerialPort::portOpen() {
// serial = CallbackAsyncSerial("COM1", 115200);  Doesn't work
serial.open("COM1", 115200);  //This works :-)
}

void SerialPort::portWrite() {
serial.writeString("Hello\n");
}

void main() {
SerialPort objt;
objt.portOpen();
objt.portWrite();
}

Спасибо за вашу помощь!

2

Решение

«//How do I make the object "serial" accessible in the other members?«

Сделайте это самой переменной-членом

class SerialPort
public:
void portSet();
void portOpen();
void portWrite();

private:
CallbackAsyncSerial serial;
};

void SerialPort::portOpen() {
serial = CallbackAsyncSerial("COM1", 115200);
}
2

Другие решения

Чтобы сделать его доступным для других членов, он должен быть переменной-членом. Это означает объявить его в определении класса SerialPort.

1

По вопросам рекламы [email protected]