класс — C ++ Член не назван

Так что у меня есть этот пример кода

#ifndef PACKETS_H_
#define PACKETS_H_

#include <winsock2.h>

typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;

/* Some code here */

typedef struct _UDP
{
u_short UDP_Source_Port;
u_short UDP_Destination_Port;
u_short UDP_Total_Length;
u_short UDP_CheckSum;
} _UDP;

class _Packet
{
private:
_IPv4_Header* IPv4_Header;
_UDP* UDP;
_TCP* TCP;
public:
_Packet(void);
~_Packet(void);
void Analyze(const u_char* Packet_Data);

/* Some code here */

u_short Get_UDP_Source_Port(void) { return UDP->UDP_Destination_Port; }
u_short Get_UDP_Destination_Port(void) { return UDP->UDP_Destination_Port; }
u_short Get_UDP_Total_Length(void) { return UDP->UDP_Total_Length; }
u_short Get_UDP_CheckSum(void) { return UDP->UDP_CheckSum; }
};

#endif
#include "Packets.h"#include <pcap.h>

_Packet::_Packet(void)
{

}

_Packet::~_Packet(void)
{

}

void _Packet::Analyze(const u_char* Packet_Data)
{
IPv4_Header = (_IPv4_Header*) Packet_Data;
if (0x06 == Get_IPv4_Protocol())
TCP = (_TCP*) Packet_Data + (int)Get_IPv4_Header_Length() / 4;
else if (0x11 == Get_IPv4_Protocol())
UDP = (_UDP*) Packet_Data + (int)Get_IPv4_Header_Length() / 4;
}

/* Some code here */

packages.cpp: В функции-члене ‘void _Packet :: Analyze (const u_char *)’:

packages.cpp: 20: 3: ошибка: «UDP» не был объявлен в этой области

packages.cpp: 20: 10: ошибка: «_UDP» не было объявлено в этой области

packages.cpp: 20: 15: ошибка: ожидаемое первичное выражение до маркера ‘)’

packages.cpp: 20: 17: ошибка: ожидается ‘;’ до ‘Packet_Data’

/* Some code here */

_Packet Packet;
cout << "  Source port: " << Packet.Get_UDP_Source_Port() << endl;
cout << "  Destination port: " << Packet.Get_UDP_Destination_Port() << endl;

/* Some code here */

main.cpp: 126: 40: ошибка: в классе _Packet нет члена с именем Get_UDP_Source_Port

main.cpp: 127: 45: ошибка: у класса _Packet нет члена с именем Get_UDP_Destination_Port

Я не знаю, почему появляется эта ошибка. Должно работать правильно

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]