初始化 :使用 子类对象 为 父类对象 初始化 ; 指针:父类指针 指向 子类对象 , 父类指针 值为 子类对象 在 堆内存 的地址 , 也就是 将 子类对象 地址 赋值给 父类类型指针 ; 引用:父类引用 引用 子类对象 , 将 子类对象 赋值给 父类类型的引用 ; 二、类型兼容性原则 - 示例分析 定义父类 Parent ,...
re:这种用法叫做“父类引用指向子类对象”(跟绕口令似的),或者叫“父类指针指向子类对象”,指的是定义一个父类的引用,而它实际指向的是子类创建的对象。功能上相当于子类的“向上转型”,或者“上溯对象”, 上面的语句也可以写成: Animal a2 = new Animal(); Dog dog = new Dog(); a2 = dog; 1. 2. 3...
定义父类的指针 , 将 指针 指向 子类对象 的地址 , 这是合法的 ; 代码示例 : 代码语言:javascript 复制 // 父类对象Parent parent;// 子类对象Child child;// I. 类型兼容性原则 : 父类指针 指向 子类对象Parent*p_parent2=NULL;p_parent2=&child; 该原则的应用场景如下 :定义函数 , 接收 父类指针 ...
<< endl; } }; int main() { Child childObj; Parent* parentPtr = &childObj; // 使用父类指针指向子类对象 parentPtr->print(); // 调用的是子类的print函数 return 0; } 复制代码 在上述示例中,我们定义了一个父类Parent和一个子类Child,子类继承自父类。在main函数中,我们创建了一个Child类的对...
父类指针指向子类对象,子类指针不能指向父类对象 总结: <1>.当基类指针指向派生类的时候,只能操作派生类从基类中继承过来的数据.(重写虚函数得到的函数也算继承过来的数据) <2>.当派生类指向基类的指针,因为内存空间比基类长,访问的话会导致内存溢出,所以不允许派生类的指针指向基类。
父类子类指针函数调用注意事项 1,如果以一个基础类指针指向一个衍生类对象(派生类对象),那么经由该指针只能访问基础类定义的函数(静态联翩) 2,如果以一个衍生类指针指向一个基础类对象,必须先做强制转型动作(explicit cast),这种做法很危险,也不符合生活习惯,在程序设计上也会给程序员带来困扰。(一般不会这么去定...
(1)父类指针指向子类时,没有问题,因为父类有的,子类都有,不会出现非法访问问题,也是面向对象特性中多态性的体现(该指针可以调用子类成员,从而使父类指针具备“ 多种形态 ” )。 (2)子类指针指向父类的话,一旦访问子类特有的方法函数或者成员变量,就会出现非法,因为被子类指针指向的由父类创建的对象,根本没有...
子类 子类1 父类2 修改成 class ICBase{public:/*修改接口为虚函数*/virtualvoidmy(){};virtualvoidyou(){};};class CBase:public ICBase{public:voidmy(){cout<<"父类"<<endl;}voidyou(){cout<<"父类1"<<endl;}voidhe(){cout<<"父类2"<<endl;}};class CDerivedA:public CBase{public:void...
java父类this指针指向子类对象 java的父类引用指向子类,这次我们来看一个Java中经典的问题。我们都知道面向对象三大特征:封装、继承、多态我们先来看一个小小的程序classA{publicvoidfun1(){System.out.println("A1");}publicvoidfun2(){this.fun1();}}classBextendsA{