楼主想要通过将基类指针转为派生类指针的方法来实现调用新方法.但他看到有论述说"不能够将基类指针转化为派生类指针(实际上如果此时的基类指向派生类对象的话,可以发生这种转换,我的批注)",故在论坛里对这一问题进行了交流.(我存在的疑惑:既然他可以使用子类来调用新方法,干嘛还要使用基类呢?)...
这段代码不会通过编译。基类指针不能强制转换并赋给派生类指针,原因很简单,如果能够这样赋值,意味着基类完全可以替代派生类,这是不允许的,因为派生类可能有添加功能。如果现实中需要这种转换,那就首先需要考虑一下继承关系的设计问题了。
基类的指针或者引用可以通过强制类型转换赋值给派生类的指针或者引用。但是必须是基类的指针是指向派生类对象时才是安全的。 class Person{protected :string _name; // 姓名string _sex; // 性别int _age; // 年龄};class Student : public Person{public :int _No ; // 学号};void Test (){Student sobj...
在保护继承方式中,基类的公有成员和保护成员被派生类继承后变成派生类的保护成员,而基类的私有成员在派生类中不能访问。因为基类的公有成员和保护成员在派生类中都成了保护成员,所以派生类的新增成员可以直接访问基类的公有成员和保护成员,而派生类的对象不能访问它们,上一讲鸡啄米说过,类的对象也是处于类外的,不...
下列说法中,正确的是( )。 A. 基类对象可以访问派生类的所有成员 B. 在任何情况下,基类对象都不能转换为派生类对象 C. 接口不可以实例化,也不可以引用实现该
下列说法中,正确的是( )。 A、 派生类对象可以强制转换为基类对象 B、在任何情况下,基类对象都不能转换为派生类对象 C、 接口不可以实例化,也不可以引用实现该接口的类的对象 D、基类对象可以访问派生类的成员
/* class_protect.class */ /* 基类转换派生类问题:(不安全的转换) 既然转换了那就是指向派生类了,调用函数不涉及到变量还可以, 如果涉及到变量就是...
get() 这个成员函数B C的对象肯定访问不了了 至于test(b)、test(c)为什么报错,我觉得是protected继承改变了B的访问特性,跟A不一样了,所以函数报错了
当派生类指针指向基类对象时( ) A. 可以直接调用基类的成员函数 B. 可以调用派生类对象的成员函数 C. 必须强制将派生类指针转换成基类指针才能调用基类的成员函数 D. 以上说法都不对 相关知识点: 试题来源: 解析 C.必须强制将派生类指针转换成基类指针才能调用基类的成员函数 ...