下列C++程序段中,错误的语句是(),改正后应为()。

来源:百度知道 编辑:UC知道 时间:2024/06/06 04:52:57
Class Base{};
Class Base1():public Base{};
Class Base2():public Base{};
Class Derived:public Base1,public Base2{};
Base * bptr;
Derived * dptr;
dptr=(Derived *)bptr;
答案是最后一句错,怎么改呢?

Class Base{};
Class Base1:public Base{};
Class Base2:public Base{};
Class Derived:public Base1,public Base2{};
Base * bptr;
Derived * dptr;
dptr=(Derived *)bptr;
//最后一句,强制转换,没什么问题,就是被书本强制说成错的,我就这么写,不行啊

老大,你的声明好像都很有问题啊。class base1(): public Base{};这是什么意思?

bptr为基类Base的指针,dptr为派生类Derived指针
可以把派生类指针赋值给基类指针,但是不能将基类指针赋值给派生类。
bptr=(Base *)dptr; //得写成这种样子

Class Base1():public Base{};
Class Base2():public Base{};
Class Derived:public Base1,public Base2{};
都有问题啊?怎么能加括号呢?