Error: expected ')' before '*' token
Мне кажется что я ошибся в архитектуре классов, тк ошибка весьма странно выглядит. У меня несколько классов, тот с которым я работаю это DataTransmissionPC.
DataTransmissionPC.h
#include "ISerialPC.h"
#include "DataTransmissionBeb/src/DataTransmissionBeb.h"
class DataTransmissionPC : public DataTransmission {
public:
DataTransmissionPC(ISerialPC* _iSerial);
}
DataTransmissionPC.cpp
#include "DataTransmissionPC.h"
DataTransmissionPC::DataTransmissionPC(ISerialPC* _iSerial) : DataTransmission(_iSerial) {}
ISerialPC.h
#include "DataTransmissionPC.h"
#include "DataTransmissionPC.h"
class ISerialPC : public ISerial {
QSerialPort* initializationArduinoDevice();
public:
ISerialPC();
QSerialPort* arduino;
void iWrite(const byte* val) override;
bool iWaitForReadyRead(int time) override;
ISerialPC.cpp
#include "ISerialPC.h"
ISerialPC::ISerialPC() {
arduino = initializationArduinoDevice();
}
void ISerialPC::iWrite(const byte* val) {
arduino->write();
}
bool ISerialPC::iWaitForReadyRead(int time = 30000) {
return arduino->waitForReadyRead(time);
}
QSerialPort* ISerialPC::initializationArduinoDevice() {
//много кода....
}
DataTransmissionBeb.h
class ISerial {
public:
virtual void iWrite(const byte* val) = 0;
virtual bool iWaitForReadyRead(int time) = 0;
};
class DataTransmission {
protected:
const size_t sizeSendBuf = 256;
const size_t sizeReceivedBuf = 512;
byte* sendMes = new byte[sizeSendBuf];
byte* receivedMes = new byte[sizeReceivedBuf];
public:
ISerial* iSerial;
void clearBufMes(byte* mes, size_t& sizeMes);
DataTransmission(ISerial* _iSerial);
~DataTransmission();
};
DataTransmissionBeb.cpp
#include <DataTransmissionBeb/src/DataTransmissionBeb.h>
DataTransmission::DataTransmission(ISerial* _iSerial) {
iSerial = _iSerial;
clearBufMes(sendMes, sizeSendMes);
clearBufMes(receivedMes, sizeReceivedMes);
}
main.cpp
#include "ISerialPC.h"
int main(int argc, char *argv[]) {
ISerialPC *iArduino = new ISerialPC;
DataTransmissionPC* dateTrans = new DataTransmissionPC(iArduino);
delete dateTrans;
delete iArduino;
}
Ошибки: 1)
...\DataTransmissionPC.h:14: ошибка: expected ')' before '*' token
In file included from ISerialPC.h:3:0,
from main.cpp:9:
DataTransmissionPC.h:14:33: error: expected ')' before '*' token
DataTransmissionPC(ISerialPC* _iSerial);
...\main.cpp:20: ошибка: no matching function for call to 'DataTransmissionPC::DataTransmissionPC(ISerialPC*&)' main.cpp: In function 'int main(int, char**)': main.cpp:20:68: error: no matching function for call to 'DataTransmissionPC::DataTransmissionPC(ISerialPC*&)' DataTransmissionPC* dateTrans = new DataTransmissionPC(iArduino);
...\ISerialPC.h:3: In file included from ISerialPC.h:3:0, In file included from ISerialPC.h:3:0, from main.cpp:9: DataTransmissionPC.h:8:7: note: candidate: constexpr DataTransmissionPC::DataTransmissionPC(const DataTransmissionPC&) class DataTransmissionPC : public DataTransmission { ^~~~~~~~~~~~~~~~~~ DataTransmissionPC.h:8:7: note: no known conversion for argument 1 from 'ISerialPC*' to 'const DataTransmissionPC&'
...\DataTransmissionPC.h:14: ошибка: expected ')' before '' token In file included from ISerialPC.h:3:0, from ISerialPC.cpp:1: DataTransmissionPC.h:14:33: error: expected ')' before '' token DataTransmissionPC(ISerialPC* _iSerial);
:-1: ошибка: [Makefile.Debug:438: debug/main.o] Error 1
Что я сделал тут не так, и как надо подобное делать?