楼主想要通过将基类指针转为派生类指针的方法来实现调用新方法.但他看到有论述说"不能够将基类指针转化为派生类指针(实际上如果此时的基类指向派生类对象的话,可以发生这种转换,我的批注)",故在论坛里对这一问题进行了交流.(我存在的疑惑:既然他可以使用子类来调用新方法,干嘛还要使用基类呢?)...
这段代码不会通过编译。基类指针不能强制转换并赋给派生类指针,原因很简单,如果能够这样赋值,意味着基类完全可以替代派生类,这是不允许的,因为派生类可能有添加功能。如果现实中需要这种转换,那就首先需要考虑一下继承关系的设计问题了。
基类的指针或者引用可以通过强制类型转换赋值给派生类的指针或者引用。但是必须是基类的指针是指向派生类对象时才是安全的。 class Person{protected :string _name; // 姓名string _sex; // 性别int _age; // 年龄};class Student : public Person{public :int _No ; // 学号};void Test (){Student sobj...
下列说法中,正确的是( )。 A. 基类对象可以访问派生类的所有成员 B. 在任何情况下,基类对象都不能转换为派生类对象 C. 接口不可以实例化,也不可以引用实现该
/* class_protect.class */ /* 基类转换派生类问题:(不安全的转换) 既然转换了那就是指向派生类了,调用函数不涉及到变量还可以, 如果涉及到变量就是...
下列说法中,正确的是( )。 A、 派生类对象可以强制转换为基类对象 B、在任何情况下,基类对象都不能转换为派生类对象 C、 接口不可以实例化,也不可以引用实现该接口的类的对象 D、基类对象可以访问派生类的成员
在C++中,可以定义一个指针,使其指向类成员或成员函数,然后通过指针 来访问类的成员。这包括指向属性...
get() 这个成员函数B C的对象肯定访问不了了 至于test(b)、test(c)为什么报错,我觉得是protected继承改变了B的访问特性,跟A不一样了,所以函数报错了
刷刷题APP(shuashuati.com)是专业的大学生刷题搜题拍题答疑工具,刷刷题提供在protected继承方式下,派生类对象的指针不能直接转换成指向基类对象的指针。()A.正确B.错误的答案解析,刷刷题为用户提供专业的考试题库练习。一分钟将考试题Word文档/Excel文档/PDF文档转化为在