27.05.2010, 14:57
общий
это ответ
Здравствуйте, novij2011.
В таком виде программа уже работает:
Приложение:
#include <stdio.h>
#define EKZAMENZ "Ekzamen"
#define VIPUSKEKZAMENZ "VipuskEkzamen"
#define ISPITANIEZ "ispitanie"
#include <iostream>
#include <cstdlib>
static int count=0;
class test
{
public:
char *name1;
int data1;
int result1;
static test *beg;
test* next;
test();
test(char *name, int data, int result);
test(const test&);
~test(){};
static void showlist();
void addtolist();
char* getname();
virtual int getdata();
int getresult() const;
void setname(char*);
virtual void setdata(int);
void setresult(int);
virtual void setall(char*,int,int);
virtual void show()=0;
};
class ekzamen:public test
{
public:
ekzamen(){name1="ekzamen";};
ekzamen(char* name, int result);
ekzamen(const ekzamen&);
~ekzamen(){};
void setall(char*,int);
virtual void show();
};
class vipuskekzamen:public test
{
public:
vipuskekzamen(){name1="vipuskekzamen";};
vipuskekzamen(char* name, int result){
name1=name;
data1=4;
result1=result;
};
vipuskekzamen(const vipuskekzamen&);
~vipuskekzamen(){};
int getdata();
void setdata();
void setall(char*,int);
virtual void show();
};
class ispitanie:public test
{
public:
ispitanie(){name1="ispitanie";};
ispitanie(char* name, int result){
name1=name;
data1=6;
result1=result;
};
ispitanie(const ispitanie&);
~ispitanie(){};
int getdata();
void setdata();
void setall(char*,int);
virtual void show();
};
extern test *p;
extern ekzamen *p2;
extern vipuskekzamen *p3;
extern ispitanie *p4;
test::test()
{
name1="\0";
data1=0;
result1=0;
addtolist();
};
test::test(char *name,int data,int result)
{
name1=name;
data1=data;
result1=result;
addtolist();
};
test::test(const test& sec)
{
name1=sec.name1;
data1=sec.data1;
result1=sec.result1;
};
void test::showlist()
{
char i;
test *tmp=test::beg;
printf("count=%d\n",count);
for(i=0;i<count;i++)
{
tmp->show();
tmp=tmp->next;
}
};
void test::addtolist()
{
this->next=beg;
beg=this;
count++;
};
char* test::getname()
{
return name1;
}
void test::setname(char* nm)
{
name1=nm;
}
int test::getdata()
{
return data1;
}
void test::setdata(int dat)
{
data1=dat;
}
int test::getresult() const
{
return result1;
}
void test::setresult(int res)
{
result1=res;
}
void test::setall(char* nm, int dat, int res)
{
name1=nm;
data1=dat;
result1=res;
}
ekzamen::ekzamen(char* name, int result)
{
printf("constructor exzamen");
name1=name;
data1=5;
result1=result;
};
void ekzamen::show()
{
printf("Examen: Name: %s ; data: %d ; result: %d\n",name1,data1,result1);
}
/*int ekzamen::getdata()
{
return data1;
}
void ekzamen::setdata(int data)
{
data1=data;
}
void ekzamen::setall(char* nm,int res)
{
name1=nm;
//data1=dat;
result1=res;
}
char* vipuskekzamen::getdata()
{
return vipuskekzamen;
}
void vipuskekzamens::setdata()
{
data1=vipuskekzamen;
}
void vipuskekzamen::setall(char* nm,int res)
{
name1=nm;
//data1=vipuskekzamen;
result1=res;
}
*/
/*char* ispitanie::getdata()
{
return ispitanie;
}*/
void vipuskekzamen::show()
{
printf("Vypusk examen: Name: %s ; data: %d ; result: %d\n",name1,data1,result1);
}
void ispitanie::show()
{
printf("Ispitanie: Name: %s ; data: %d ; result: %d\n",name1,data1,result1);
}
//void ispitanie::setdata()
//{
// //data1=vipuskekzamen;
//}
//void ispitanie::setall(char* nm,int res)
//{
// name1=nm;
// // data1=vipuskekzamen;
// result1=res;
//}
test * test::beg=0;
int main(int argc, char** argv)
{
ekzamen lol("people1",4);
//vipuskekzamen pigs[2]={vekzamen("people2",5),vekzamen("People3",4)};
//vekzamen *opo;
//opo=new vekzamen;
//opo->setall("Opossum",7);
test::showlist();
printf("========================================================= \n");
printf("construct bez parametrov: \n");
printf("name1: \n");
printf("data1: \n");
printf("result1: \n");
system("pause");
}