I am new to C++ but not programming and have recently started to write a library for a AVR micro-controller. My header file (Codex.h) for my library looks like this..

```
#ifndef Codex_h
#define Codex_h
#include "Arduino.h"
#include <SPI.h>
#include <Ethernet.h>
#include <EthernetUdp.h>

class Codex
{
public:
    void hostIP(int a ,int b ,int c,int d);
    void start(String ID);
    void digitalReadOSC();
    void analogReadOSC();
    void digitalRead();
    void analogRead();
    void receive();
private:
    EthernetUDP _Udp;
    int _pin,_a,_b;
    int _sensorData[52];
    String _nID,_sID,_pID,_snID,_lID,_payloadlen,_payload,_packet;
    char _packetBuffer[25];
    IPAddress _coreIP(000,000,0,00);
};
#endif

```

Now Il say again I am new to C++ so I think i'm making a simple mistake but my compiler is having a problem with the IPAddress type and processing the EthernetUDP instance creation. IPAddress is a function which comes from the Ethernet.h library.Here is what my compiler spits out when I try to include my library in a project.

```
In file included from sketch_aug17b.ino:1:
C:\Program Files (x86)\Arduino\libraries\Codex/Codex.h:19: error: 'EthernetUDP' 
does not name a type
C:\Program Files (x86)\Arduino\libraries\Codex/Codex.h:24: error: 'IPAddress' 
does not name a type

```

Thanks in advance for any help given even if it is just to tell me to go and read a C++ book :).