【发布时间】:2012-01-04 22:22:44
【问题描述】:
我有一个关于使用基类指针分配派生类对象的问题...
class Base
{
void print() { cout<<"Class Base"; }
};
class Derived: public Base
{
void print() { cout<<"class Derived"; }
};
int main()
{
Base b, *bp;
Derived d, *dp;
b.print();
d.print();
bp = d; // why is this a conversion error? getting an error "cannot convert ‘Derived’ to ‘Base*’ in assignment"
bp = new B(); // this works fine...
}
这是否意味着我们只能将动态分配的派生类对象分配给基类指针?为什么会这样???
【问题讨论】:
-
ap在哪里声明?此代码甚至无法编译,因为ap未声明。向我们展示实际代码。此外,您不能将对象分配给指针,您可以将地址分配给指针。您应该选择@ 987654321@. -
我的错……应该是 bp :(
-
+1 表示结构良好的第一篇文章