(1).为何父类对象不能转化为子类对象,而父类指针可以强制转换为子类指针??

开发编程  |  电脑网络

分享:
2014-10-01

2014-10-01最佳答案


对象之间不能相互赋值。就好比教师类对象赋值给学生类对象,没有可赋值性。而指针具有可赋值性。指向教师类的指针,指向学生类的指针。如果两者赋值的话,意思是两个指针指向同一个对象。顺便说下:1,直接用基类指针引用基类对象 2,直接用派生类指针引用派生类对象 3,用基类指针引用一个派生类对象,由于派生类对象也是基类的对象,所以这种引用是安全的, 但是只能引用基类成员。若试图通过基类指针引用那些只在派生类中才有的成员,编译器会报告语法错误。(解决该问题的答案是虚函数和多态性) 4,用派生类指针引用基类的对象。这种引用方式会导致语法错误。派生类指针必须先强制转换为基类指针,这种方法是不安全的。