跨成员共享对象

时间:2014-12-18 23:41:44

标签: c++ object members

我试图让以下示例代码正常工作。我已经通过几个教程和Q& A读过了,但是我无法让它发挥作用。在所有可能的情况下,我对课程的理解都缺乏,但我通过实践来学习。希望我不冒犯任何人: - )

我正在进行串口通信,我正在尝试使用此库的回调版本: 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 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:1)

为了让其他成员可以访问它,它应该是一个成员变量。这意味着在类SerialPort定义中声明它。