注册 登录
编程论坛 C++教室

输出的结果?

y7708321 发布于 2012-03-02 12:24, 326 次点击
#include <iostream.h>
class A{
private:
   static int n;
   int X;
public:
   A(int x=0){X=x;n++;}
   ~A(){n--;}
   static int GetNum(){return n;}
   void print();
};
void A::print(){cout<<"n="<<n<<","X="<<X<<endl;}
int A::n=0;
void main()
{
    A*p=new A(12);
    p->print();
    A a(34);
    a.print();
    delete p;
cout<<"n="<<A::GetNum()<<endl;
}  


第二道

#include<iostream.h>
class A
{
public:
int n;
};
class B:virtual public A{};
class C:virtual public A{};
class D:public B,public C
{
int getn(){return B::n;}
};
void main()
{
D d;
d.B::n=10;
d.C::n=20;
cout<<d.B::n<<","<<d.C::n<<endl;
}

两道都是考试题,麻烦各位大侠帮帮忙了
1 回复
#2
Auris2012-03-02 13:18
第一题:
n=1,X=12
n=2,X=34
n=1
Press any key to continue
【please pay attention to that:
1.“void A::print(){cout<<"n="<<n<<","X="<<X<<endl;}”代码有错;
2.i++与++i在C++语言中的使用应该注意:
  a=i++是先执行“=”,再执行自增处理{a=1,i=2};
  a=++i是先执行自增,然后再执行“=”{a=2,i=2};

第二题:
20,20
Press any key to continue


1