在c ++

时间:2019-02-28 13:11:17

标签: c++ class

我是C ++的新手,并且获得了(相对)复杂的代码。

我想从另一个.c文件中的.h文件调用函数transmit()transmit()位于文件serviceUart.hpp中,其内容如下所示:

serviceUart.hpp

class ServiceUart
{
public:
    ServiceUart();
  void ioConfig(); // sets io HW ports and pins. Only needed at first boot
    void ioInit(); //
    bool readTrigger();
    bool detectConnection() {return (m_rxPin.get()|| m_enabled);}
    bool startup();
    bool transmit(const char* s, uint16_t length, bool wait = false);

文件drvr.cpp是我尝试调用该函数的地方。我认为与该文件相关的代码片段如下所示:

drvr.cpp

#include "EHS5_drv.hpp"

char debug[] = "I got to here!";
transmit(debug,true);

我尝试了serviceUart.transmit和serviceUart :: transmit,但是无论我怎样尝试,我都会得到错误代码`#20标识符“ transmission”未定义”。我猜我对语法有误解吗?

2 个答案:

答案 0 :(得分:2)

方法bool transmit(const char* s, uint16_t length, bool wait = false);ServiceUart中定义。您必须创建ServiceUart类的对象,然后调用方法transmit()

char debug[] = "I got to here!";

ServiceUart obj;
obj.transmit(debug,true);

或与new

ServiceUart* obj = new ServiceUart();
obj->transmit(debug,true);
delete obj;

别忘了删除obj。

答案 1 :(得分:2)

您可能想要:

char[] debug = "I got here";

ServiceUart serviceObg;
obj.transmit(debug, true);