06-16-2011, 04:02 AM
yeh bhi ek aur solution hai may be it will for students check it
copy and paste it and save as .cpp then run it will work
copy and paste it and save as .cpp then run it will work
Code:
#include <iostream.h>
#include<stdlib.h>
#include<string.h>
class topic
{
public: topic(char *myName)
{
cout<<"student\n";
name_p = new char(sizeof(strlen(myName)));
name_p = myName;
subtopic::initList_v(subtopicsList_p);
subtopic* mysubtopic;
subtopic::createsubtopic_v(mysubtopic, this, "name");
subtopicsList_p[0] = mysubtopic;
subtopic::createsubtopic_v(mysubtopic, this, "age");
subtopicsList_p[1] = mysubtopic;
subtopic::createsubtopic_v(mysubtopic, this, "ID");
subtopicsList_p[2] = mysubtopic;
}
//cout<<"\n\n"; }
private:
char* name_p;
subtopic* subtopicsList_p[3];
};
class subtopic:public topic
{
public: subtopic()
{
static void createsubtopic_v(subtopic* (&subtopic),topic* top,char* name)
{
subtopic = new subtopic(top, name);
}
subtopic(topic* top, char* myName)
{
cout"student\n";
mytop_p = top;
if(NULL != mytop_p)
{
name_p = new char(sizeof(strlen(myName)));
name_p = myName;
}
else
{
cout"Please enter the age of the Student\n";
}
};
~subtopic() { cout"student\n";
mytop_p = NULL;
delete (name_p);
};
void disp() { cout name_p;
cout"\n";
}
static void initList_v(subtopic *(& subtopicsList_p)[3])
{
subtopicsList_p[3] = new subtopic[3];
}
private: topic * mytop_p;
char * name_p;
};
topic::~topic()
{
cout"student\n";
unsigned int i;
cout"Eligible for LMS...\n";
for(i=0; i<3; ++i)
{
if(subtopicsList_p[i] != NULL)
{
delete (subtopicsList_p[i]);
}
delete [] subtopicsList_p;
delete (name_p);
}
void topic::disp()
{
cout"\n\nstudent :"name_p;
if(subtopicsList_p != NULL)
{
unsigned int i;
cout"\n\nStudentsList...\n";
for(i=0; i<3; ++i) { if(NULL != subtopicsList_p[i])
{
subtopicsList_p[i]->disp();
}
}
int main()
{ cout"\nExample of Composition Relationship\n";
cout"-----------------------------------------\n\n";
topic top("data members");
cout"\n\nstudent...\n";
top.disp();
return(0);
}