关于类型兼容规则的一点问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 18:06:08
#include<iostream>
using namespace std;
class B0
{
public:void display(){cout<<"B0::display()"<<endl;
};
class B1:public B0
{
public:void display(){cout<<"B1::display()"<<endl;
};
class D1:public B1
{
public:void display(){cout<<"B1::display()"<<endl;
};
void fun(B0*ptr){ptr->display();}
int main(){
B0 b0;
B1 b1;
D1 d1;
B0 *p;
p=&b0;
fun(p);
p=&b1;
fun(p);
p=&d1;
fun(p);
}

想问为什么我在我的vc6.0中编译错误,说base class undefined,这是为什么啊,要怎么改?小弟谢了!!

呵呵 三个类里面public 后面的 函数定义时都忘了加右花括号

导致类的结束出现问题

只需添三个右花括号
#include<iostream>
using namespace std;

class B0
{
public:
void display()
{
cout<<"B0::display()"<<endl;
}
};

class B1:public B0
{
public:
void display()
{
cout<<"B1::display()"<<endl;
}

};

class D1:public B1

{
public:
void display()
{
cout<<"B1::display()"<<endl;
}
};

void fun(B0*ptr)
{
ptr->display();
}

int main()
{
B0 b0;
B1 b1;
D1 d1;
B0 *p;
p=&b0;
fun(p);
p=&b1;
fun(p);
p=&d1;
fun(p);
}