I am getting this error and I don't know why...could someone help?

Code:
#include <stdlib.h>
#include <iostream>
#include <vector>
#include <string>
#include <fstream>

using namespace std;

typedef unsigned long u_long;
typedef unsigned short u_short;
typedef unsigned char byte;

class CFile
{
private:

u_long    fsize, mode;
char      name[256];
fstream  *file;

void   GetSize()
       {
           file->close();
           file->open(name, ios::in | ios::ate);

           fsize = file->tellg();
            		   
           file->close();
           file->open(name, mode);
       };

public:

    CFile(char filename[256])
    {
        file = new fstream;
        strcpy(name, filename);
        mode = ios::in;

        file->open(name, mode);

        if( file->fail() )
        {
            cout <<"Could not open " <<name;
            exit(0);
        }

        GetSize();
    };

    CFile(char filename[256], u_long openmode)
    {
        file = new fstream;
        strcpy(name, filename);
        mode = openmode;

        file->open(name, mode);

        if( file->fail() )
        {
            cout <<"Could not open " <<name;
            exit(0);
        }

        GetSize();
    };

u_long   size() {return fsize;};


   ~CFile()
   {
       file->close();
       delete file;
   };

};
When I try to compile this, I get the following error messages from MSVC++ 6

Code:
d:\bcc55\projects\readfile\readfile.h(42) : error C2668: 'open' : ambiguous call to overloaded function
d:\bcc55\projects\readfile\readfile.h(53) : error C2668: 'open' : ambiguous call to overloaded function
d:\bcc55\projects\readfile\readfile.h(70) : error C2668: 'open' : ambiguous call to overloaded function
Any suggestions would be appreciated.