cant use the wire library in a class and a sketsh

at first i post my own written class called i2ckeypad
[edit]
#ifndef WProgram_h
#include "WProgram.h"
#endif

#ifndef TwoWire_h
#include "utility/Wire.h"
#endif

#ifndef i2ckeypad_h
#define i2ckeypad_h

class i2ckeypad {

public:
i2ckeypad(byte adress);
char getKeyChar();
void setAddress(byte address);

private:
int _address;
byte _tempByte;
bool _found;
void keyPressed();
void keyReleased();
void sendToPCF(byte spalte);
byte readFromPCF();
};

#endif /* I2CKEYPAD_H_ */[/edit]

in my sketsh i use this class an i will use the wire library too. here you can see.

[edit]
#include <Wire.h>
#include <i2ckeypad.h>
i2ckeypad c_control(162);
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.print(c_control.getKeyChar());
Wire.requestFrom(2, 6);
while(Wire.available())
{
Serial.print(Wire.receive());
}
}[/edit]

if i will compile it shows me the warnings multiple definition and first defined here.
i hope somebody can help me.
thx :sunglasses:

Why does your header file need to (conditionally) include WProgram.h and utility/Wire.h?

if i will compile it shows me the warnings multiple definition and first defined here.

The "first defined here" part is telling you where the symbol was first encountered. The "multiple definition" part is telling you that the symbol was defined again.

What symbols is the compiler complaining about? Where are they first defined?