Unable to declare a class in 2 forms

A

Allen

Unable to declare a class in 2 forms

--------------------------------------------------------------------------------

Below are 4 forms. Namely: Form1, EmployeeID, AboutBox and
EnterEmployeeName. I made a class to help in open, write and read from
files, called Time. I managed to declare class Time in EmployeeID space, but
could not declare it in EnterEmployeeName. In other words, I can declare
class Time in one space only. I realy want to use class Time in both forms,
EmployeeID and EnterEmployeeName. Can anybody tell me why I always get
error, below, every time I run the program? And how can I use the Time class
in both the above forms? I am showing below the skeleton and believe me it
will compile.


Error message:

1>c:\users\allen\documents\visual studio
2008\projects\timetracking\timetracking\Time.h(5) : error C2011: 'Time' :
'class' type redefinition
1> c:\users\allen\documents\visual studio
2008\projects\timetracking\timetracking\Time.h(5) : see declaration of
'Time'
1>EnterEmployeeName.cpp

//Form1:

#pragma once
#include "AboutBox.h"
#include "EmployeeID.h"
#include "EnterEmployeeName.h"
namespace TimeTracking
{
using namespace System::Windows::Forms;
public ref class Form1 : public System::Windows::Forms::Form
{

};
}
/***************************/

// EmployeeID

#pragma once
#include "Time.h"
//#include "stdafx.h"
#using <mscorlib.dll>

namespace TimeTracking
{
public ref class EmployeeID : public System::Windows::Forms::Form
{
};
}
/***************************/

// AboutBox:

#pragma once
namespace TimeTracking
{
public ref class AboutBox : public System::Windows::Forms::Form
{

};
}
/***************************/

//EnterEmployeeName:


#pragma once
#include "stdafx.h"
//#include "Time.h" //-------------uncomment and get error C2011

namespace TimeTracking
{

public ref class EnterEmployeeName : public System::Windows::Forms::Form
{

};
}
/***************************/

//Time.h:

using namespace System;
ref class Time
{
};
/***************************/

//Time.cpp:

#include "stdafx.h"
#include "Time.h"
#using <mscorlib.dll>
 
D

David Wilkinson

Allen said:
Unable to declare a class in 2 forms

--------------------------------------------------------------------------------


Below are 4 forms. Namely: Form1, EmployeeID, AboutBox and
EnterEmployeeName. I made a class to help in open, write and read from
files, called Time. I managed to declare class Time in EmployeeID space,
but could not declare it in EnterEmployeeName. In other words, I can
declare class Time in one space only. I realy want to use class Time in
both forms, EmployeeID and EnterEmployeeName. Can anybody tell me why I
always get error, below, every time I run the program? And how can I use
the Time class in both the above forms? I am showing below the skeleton
and believe me it will compile.


Error message:

1>c:\users\allen\documents\visual studio
2008\projects\timetracking\timetracking\Time.h(5) : error C2011: 'Time'
: 'class' type redefinition
1> c:\users\allen\documents\visual studio
2008\projects\timetracking\timetracking\Time.h(5) : see declaration of
'Time'
1>EnterEmployeeName.cpp

//Form1:

#pragma once
#include "AboutBox.h"
#include "EmployeeID.h"
#include "EnterEmployeeName.h"
namespace TimeTracking
{
using namespace System::Windows::Forms;
public ref class Form1 : public System::Windows::Forms::Form
{

};
}
/***************************/

// EmployeeID

#pragma once
#include "Time.h"
//#include "stdafx.h"
#using <mscorlib.dll>

namespace TimeTracking
{
public ref class EmployeeID : public System::Windows::Forms::Form
{
};
}
/***************************/

// AboutBox:

#pragma once
namespace TimeTracking
{
public ref class AboutBox : public System::Windows::Forms::Form
{

};
}
/***************************/

//EnterEmployeeName:


#pragma once
#include "stdafx.h"
//#include "Time.h" //-------------uncomment and get error C2011

namespace TimeTracking
{

public ref class EnterEmployeeName : public System::Windows::Forms::Form
{

};
}
/***************************/

//Time.h:

using namespace System;
ref class Time
{
};
/***************************/

//Time.cpp:

#include "stdafx.h"
#include "Time.h"
#using <mscorlib.dll>

Allen:

1. Time.h (and all header files) need #pragma once at the beginning.

2. Do not use #include "stdafx.h" in header files.

3. #include "stdafx.h" must be the first line in all .cpp files.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top