C++ 预期的‘;)’;在‘之前;名称’;
我正在为一个与Arduino通信的类编写头文件,我一直收到上面的错误消息。我研究了其他类似的问题,一个反复出现的问题是所讨论的数据类型没有得到很好的定义。没有定义std::string有什么原因吗,或者还有其他问题吗?提前谢谢 编辑:以下代码适用于我用来与Arduino通信的Linux机器,因此不是Arduino代码。此外,完整的错误消息是: 错误:“名称”之前应为“)” ArduinoCom(标准:字符串名称、速度和波特率)C++ 预期的‘;)’;在‘之前;名称’;,c++,C++,我正在为一个与Arduino通信的类编写头文件,我一直收到上面的错误消息。我研究了其他类似的问题,一个反复出现的问题是所讨论的数据类型没有得到很好的定义。没有定义std::string有什么原因吗,或者还有其他问题吗?提前谢谢 编辑:以下代码适用于我用来与Arduino通信的Linux机器,因此不是Arduino代码。此外,完整的错误消息是: 错误:“名称”之前应为“)” ArduinoCom(标准:字符串名称、速度和波特率) ARDINO IDE默认不使用C++ STL,而是ARDUNO拥有
ARDINO IDE默认不使用C++ STL,而是ARDUNO拥有自己的库集。对于Arduino开发,您将使用提供的
String
对象,而不是std::String
还有,你应该退房
使用名称空间std在头文件中使用code>是一个非常糟糕的主意,去掉它。对于初学者来说,ArduinoCom(std::string name,speed\t baud)标题中的code>与cpp中的ArduinoCom::ArduinoCom(int name,speed\u t baud)
冲突。您能否将您的SerialCon.h
也包括在内?我将编辑上述问题,但上面的代码是针对与Arduino通信的Linux机器的,而不是针对Arduino本身的。谢谢你的回复
#ifndef ArduinoCom
#define ArduinoCom
#include <unistd.h>
#include <stdlib.h>
#include <getopt.h>
#include <iostream>
#include <fstream>
#include <string>
#include <termios.h>
#include "SerialCom.h"
class ArduinoCom {
public:
ArduinoCom(std::string name, speed_t baud);
~ArduinoCom();
std::string get_value(std::string value_type);
double get_double_value(std::string value_type);
private:
SerialCom *ard_serial;
};
#endif
#include "ArduinoCom.h"
#include "SerialCom.h"
using namespace std;
ArduinoCom::ArduinoCom(std::string name, speed_t baud){
ard_serial = new SerialCom(name, baud);
}
ArduinoCom::~ArduinoCom(){
delete ard_serial;
}
std::string ArduinoCom::get_value(std::string value_type){
ard_serial->write(value_type);
std::string buf;
ard_serial->read(buf);
return buf;
}
double ArduinoCom::get_double_value(std::string value_type){
std::value_str = ArduinoCom::get_value(value_type);
return stod(value_str);
}