Custom class is preventing code execution?

I have converted a set of functions into a library. I know that the functions work properly, and because of this I know that something in my class outside of the functions is keeping my program from executing (setup() and loop() aren’t executing). My suspicion is that there is an undetected error with the inclusion of “Wire.h” within the custom class. I believe this one is over my head and I’d really appreciate some help.

.h:

#ifndef ITG3200_h
#define ITG3200_h

#include    "Arduino.h"

class ITG3200
{
public:
    ITG3200();
    int readITG3200(byte axis);
private:
    unsigned char itgRead(char address, char registerAddress);
    void itgWrite(char address, char registerAddress, char data);
};
#endif

.cpp:

#include    <Arduino.h>
#include    "ITG3200.h"
#include    "/Applications/Arduino.app/Contents/Resources/Java/libraries/Wire/Wire.h"

//Macros
#define X   0
#define Y   1
#define Z   2

//Parameters
char WHO_AM_I = 0x00;
char SMPLRT_DIV = 0x15;
char DLPF_FS = 0x16;
char GYRO_XOUT_H = 0x1D;
char GYRO_XOUT_L = 0x1E;
char GYRO_YOUT_H = 0x1F;
char GYRO_YOUT_L = 0x20;
char GYRO_ZOUT_H = 0x21;
char GYRO_ZOUT_L = 0x22;

//Settings
char DLPF_CFG_0 = 1<<0;
char DLPF_CFG_1 = 1<<1;
char DLPF_CFG_2 = 1<<2;
char DLPF_FS_SEL_0 = 1<<3;
char DLPF_FS_SEL_1 = 1<<4;

//I2C address
char itgAddress = 0x69;


ITG3200::ITG3200()
{
    Wire.begin();
    
    //Set the gyroscope scale for the outputs to +/-2000 degrees per second
    itgWrite(itgAddress, DLPF_FS, (DLPF_FS_SEL_0|DLPF_FS_SEL_1|DLPF_CFG_0));
    
    //Set the sample rate to 100 hz
    itgWrite(itgAddress, SMPLRT_DIV, 9);
}

void ITG3200::itgWrite(char address, char registerAddress, char data)
{
    //Write a value to a register on the itg-3200
    Wire.beginTransmission(address);
    Wire.write(registerAddress);
    Wire.write(data);
    Wire.endTransmission();
}

unsigned char ITG3200::itgRead(char address, char registerAddress)
{
    unsigned char data = 0;
    
    //Send the register address to be read.
    Wire.beginTransmission(address);
    Wire.write(registerAddress);
    Wire.endTransmission();
    
    //Ask the I2C device for data
    Wire.beginTransmission(address);
    Wire.requestFrom(address, 1);
    
    //Wait for a response from the I2C device
    if(Wire.available()){
        data = Wire.read();
    }
    
    Wire.endTransmission();
    
    return data;
}

int ITG3200::readITG3200(byte axis)
{
    int data = 0;
    
    if (axis == X) {
        data = itgRead(itgAddress, GYRO_XOUT_H)<<8;
        data |= itgRead(itgAddress, GYRO_XOUT_L);
    } else if (axis == Y) {
        data = itgRead(itgAddress, GYRO_YOUT_H)<<8;
        data |= itgRead(itgAddress, GYRO_YOUT_L);
    } else if (axis == Z) {
        data = itgRead(itgAddress, GYRO_ZOUT_H)<<8;
        data |= itgRead(itgAddress, GYRO_ZOUT_L);
    }
    
    return data;
}

.pde:

#include "Wire.h"
#include "ITG3200.h"

#define  X  0
#define  Y  1
#define  Z  2

ITG3200  ITG;

void setup()
{
  Serial.begin(9600);
  Serial.println("Setup"); //This isn't printing
}

void loop()
{
  Serial.println("Loop"); //This isn't printing
  Serial.print(ITG.readITG3200(X));
  Serial.print("\t");
  Serial.print(ITG.readITG3200(Y));
  Serial.print("\t");
  Serial.print(ITG.readITG3200(Z));
  Serial.println();
}

Either setup the class in the setup function or have the class call init() from its constructor. ( arduino is not setup for global initialisation, when some hardware is concerned anyway ) And something may be hanging due to this.

Thanks! You rock!