请教2个C++的题目

来源:百度知道 编辑:UC知道 时间:2024/07/08 11:29:25
1 请输出下列的值
class base
{
public:
int f1(){return 1};
virtual int f2(return 2);
};
class depbase:public base
{
public:
int f1(){return 3};
virtual int f2()(return 4);
};
base *bp= new depbase;
depbase* dbp=(depbase*)new base;
cout<<bp->f1();
cout<<bp->f2();
cout<<dbp->f1();
cout<<dbp->f2();

2 请输出下列值
class counter
{
public:
static int count;
counter(){count++};
int GetCount(){return count};
~counter(){count--};
}
int counter::count=5;
count c1;
printf("\n current counter count:%d",c1.count);
count c2;
printf("\n current counter count:%d",c1.GetCount);
printf("\n current counter count:%d",c2.count);

要给出解答才好~~在线等答案~

你从哪里抄的代码,仔细看错误一大堆,我改了下:

class base
{
public:
int f1(){return 1;}
virtual int f2(){return 2;}
};
class depbase:public base
{
public:
int f1(){return 3;}
virtual int f2(){return 4;}
};

问题是关于upcast和downcast的,如果你不关是想交作业而且想把问题弄清楚
的话请参看我的回答:

http://zhidao.baidu.com/question/21295634.html

结果如下:

cout<<bp->f1(); // 输出1
cout<<bp->f2(); // 输出4
cout<<dbp->f1(); // 输出3
cout<<dbp->f2(); / 输出2

第二个同样N多错误,我改了如下:

class counter
{
public:
static int count;
counter(){count++;}
int GetCount(){return count;}
~counter(){count--;}
};
int counter::count=5;
counter c1;
printf("\n current counter count:%d",c1.count);
counter c2;
printf(&q