컴파일 할 때 다음과 같은 오류가 발생합니다. 그 이유를 이해할 수 없으며, 간단하고 쉽게 해결할 수있는 경우 사과드립니다. 그러나 C++에 익숙 그 주위에 내 머리를 쓰고있어.컴파일시 C++ 오류가 발생했습니다.
오류 :
main.cpp|20|error: invalid conversion from 'char*' to 'char' [-fpermissive]|
msgpacket.h|15|error: initializing argument 5 of 'MsgPacket::MsgPacket(int, int, int, int, char)' [-fpermissive]|
파일 MAIN.CPP
#include <iostream>
#include <iomanip>
#include "DataStream.h"
#include "MsgPacket.h"
using namespace std;
DataStream name;
DataStream * myPackets = new DataStream();
int main() {
int source;
int destination;
int type;
int port;
int input;
char data[50];
MsgPacket * Packet = new MsgPacket(source,destination,type,port,data);
cout << "My Assignment" << endl;;
}
MsgPacket.h
#ifndef MSGPACKET_H
#define MSGPACKET_H
#include <string>
#include "PacketAddress.h"
using namespace std;
class MsgPacket : public PacketAddress {
public:
MsgPacket();
MsgPacket (const MsgPacket & rhs);
MsgPacket(string dataIn);
MsgPacket(int port, int source, int destination, int type, char data);
string toString();
string getData() const {return _data;};
void setData(string inData) {_data = inData;};
string dataOutput();
virtual ~MsgPacket();
virtual MsgPacket * Clone() { return new MsgPacket(*this); }
protected:
string _data;
};
#endif // MSGPACKET_H
MsgPacket.cpp
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <string>
#include <iomanip>
#include "msgpacket.h"
using namespace std;
MsgPacket::MsgPacket():
PacketAddress(0,0)
{
}
MsgPacket::MsgPacket (const MsgPacket & rhs):
PacketAddress(rhs),
_data(rhs.getData())
{
}
MsgPacket::MsgPacket(string dataIn):
PacketAddress(0,0){
string temp;
temp = dataIn.substr (0,4);
_source = atoi(temp.c_str());
temp = dataIn.substr (5,4);
_dest = atoi(temp.c_str());
temp = dataIn.substr (10,4);
_type = atoi(temp.c_str());
temp = dataIn.substr (15,4);
_port = atoi(temp.c_str());
_data = dataIn.substr (20,dataIn.length());
#ifdef DEBUG
cout << "CREATE PACKET: " << this->toString() << endl;
#endif
}
MsgPacket::MsgPacket(int source, int destination):
PacketAddress(source,destination)
{
}
MsgPacket::MsgPacket(int source, int destination, int port):
PacketAddress(source,destination)
{
_port = port;
}
MsgPacket::MsgPacket(int source, int destination, int type, int port, char data):
PacketAddress(source, destination)
{
_source = source;
_dest = destination;
_type = type;
_data = data;
_port = port;
}
MsgPacket::~MsgPacket()
{
//dtor
}
string MsgPacket::dataOutput()
{
stringstream output;//create a stringstream
output << setw(4) << setfill('0') << _source << ":" << setw(4) << setfill('0') << _dest << ":" << setw(4) << setfill('0') << _type << ":" << setw(4) << setfill('0') << _port << ":" << _data;
return output.str();
}
string MsgPacket::toString()
{
stringstream output;//create a stringstream
output << "[" << showbase << hex << this << "] S:[" << _source << "] D:[" << _dest << "] P:[" << _type << "] T:[" << _port << "]" << " DATA[" << _data << "]";
return output.str();
}
에 오신 것을 환영합니다 할 필요가있다. 시간을내어 [faq]을 읽으십시오. [badge] (http://stackoverflow.com/badges)를 받게 될 것입니다. (c : –
막연한 제목은 장래 방문자들에게 유용하지 않을 것 같습니다.) –