#include
{ i=a; count++;
cout <<\ ~A()
{ count--; cout <<\ void Show()
{ cout << \cout << \};
int A::count; int main( ) { A a1(100); A b[2]; a1.Show(); }
分析输出结果: #include
public: A(int a=0,int b=0,int c=0){ i=a ; j=b ; x=c; } void Show(){
cout << \ cout << \ } };
int A::x=500; //int A::x int main( )
{ A a(20,40,10),b(30,50,100); a.Show (); b.Show ();
cout <<“A::x=”<
结果为:i=20 j=40 x=100 i=30 j=50 x=100 A::x=100
分析输出结果:
#include
static int x,y;//定义静态成员
public: A(int a=0,int b=0,int c=0, int d=0){ i=a;j=b;x=c;y=d; } void Show(){cout << \ cout << \ } };
int A::x=0; //必须对静态成员作一次定义性说明 int A::y=0; int main( ) { A a(2,3,4,5); a.Show();
A b(100,200,300,400); b.Show(); a.Show(); }
结果为:i=2 j=3 x=4 y=5 i=100 j=200 x=300 y=400
i=2 j=3 x=300 y=400 分析输出结果: #include
virtual void a(){ cout<<\virtual void b(){ cout<<\virtual void c(){ cout<<\virtual void d(){ cout<<\virtual void e(){ cout<<\virtual void f(){ cout<<\};
class A:virtual public base{ public:
virtual void a(){ cout<<\virtual void b(){ cout<<\virtual void f(){ cout<<\};
class B:virtual public base{ public:
virtual void a(){ cout<<\virtual void c(){ cout<<\
};
class C:public A,public B{ public:
virtual void a(){ cout<<\virtual void d(){ cout<<\};
int main( ) {
C cc;
base *pa=&cc; pa->a(); pa->b(); pa->c(); pa->d(); pa->e(); pa->f(); }
结果为:a() in C b() in A c() in B d() in C e() in base f() in A
写出下列程序的结果: #include
virtual ~A( ){
cout<<”A::~A( ) called “< class B:public A{ char *buf; public: B(int i) { buf=new char[i]; } virtual ~B( ){ delete []buf; cout<<”B::~B( ) called”< void fun(A *a) { delete a; } int main( ) { A *a=new B(10); fun(a); } 结果为:B::~B() called A::~A() called 写出下列程序运行结果 #include virtual void func( ) ,cout<<”func in class A”< class B{ public: virtual void func( ) ,cout<<”func in class B”< class C:public A,public B{ public: void func( ) ,cout<<”func in class C”< int main( ){ C c; A& pa=c; B& pb=c; C& pc=c; pa.func( ); pb.func( ); pc.func( ); } 写出下列程序运行结果 #include Base(int n){cout <<\ ~Base(){cout <<\ void showi(){cout << i<< \ int Geti(){return i;} }; class Derived:public Base { int j; Base aa; public: Derived(int n,int m,int p):Base(m),aa(p){ cout << \ j=n; } ~Derived(){cout <<\ void show(){Base::showi(); cout << j<<\}; void main() { Derived obj(8,13,24); obj.show(); } 结果为: Constucting base class Constucting base class Constructing derived class 13,8,24 Destructing derived class Destructing base class Destructing base class 指出并改正下面程序中的错误。 #include Point(int a=0,int b=0) {x=a; y=b;} void move(int xoffset,int yoffset) {x+=xoffset; y+=yoffset;} int getx() {return x;} int gety() {return y;} }; class Rectangle:protected Point