. , , .
, , . .
- , . , . - , , . , , , , . - .
- , :
Virtual _ -().
virtual .
virtual _ -()=0;.
.. , .
, .
, friend static.
1.
#include<stdio.h>
class A
{
rotected:
int x;
public:
virtual void get_info()
{
puts( );
puts( =)
scanf(%i, &x);
}
};
class B: public A
{
char* name;
public:
void get_info() // virtual
{
name=new char[12];
puts( );
puts( );
fflush(stdin);
scanf(%s, name);
}
};
void main()
{
A*p1=new B;// /// .
p1→get_info();// get_info() .
w; //w .
A &pA=w;//pA , w //.
pA.get_info();// get_info() , .
}
2
#include<stdio.h>
class man
{
rotected:
char* name;
public:
virtual void input()
{
name=new char[15];
puts( );
fflush(stdin);
|
|
scanf(%s, name);
}
};
class student:public man
{
char*faculty;
public:
void input()//virtual
{
faculty= name char[20];
puts( );
fflush(stdin);
scanf(%s, faculty);
}
};
class officer:public man
{
char* zvanie;
public:
void input()//virtual
{
zvanie =new char[15];
puts( );
fflush(stdin);
scanf(%s, zvanie);
}
};
void main()
{
man x;
x.input();// man
man*p1=new student;
/*p1 . , student*/
p1→input();// input() student.
Student y;
p1=&y;// student 1.
p1→input();// input() student.
officer z;
man &w=z;
/* w man, z officer */
w.input();// input() officer.
}