I am a beginner in c++. I am not much aware about the the usage of maps or other stl containers. In my program I have defined one class group and one map<int,group>mymap
Its a very long code and most of it is irrelevant so i am giving a small part of it which is as follows:
map<int, group>idgroup;
class group; //forward reference
class user
{
private:
int w;
int d;
float p;
public:
int present_gid;
friend void calcprice(int*, int);
}c[50];
class group
{
private:
int g_id;
int td;
public:
vector<int>members;
group* next;
group()
{
td = 0;
next = NULL;
}
}
void calcp(int* id, int n)
{
int gid,Td;
float p=0.01,q=0.1,r=8,cpu;
for(int i=0; i<n; i++)
{
gid = c[id[i]].present_gid;
group g = idgroup.find(gid)->second;
Td = g.td;
cpu = (p*pow(Td,2) + q*Td + r)/Td;
c[id[i]].p = cpu*c[id[i]].d;
}
}
int main()
{
int n;
cin>>n;
int *grp_id = new int[n];
calcp(grp_id, n);
return 0;
}
When I give the map declaration before the class I get the following error:
error:‘group’ was not declared in this scope
map<int, group>mymap;
and when I give a forward declaration of the class, I get the following error:
error: forward declaration of ‘class group’
class group;
I am not able to understand what is the problem. Please help. Thank you!
mymapa field insidegroup?