首页 > 软件 > 父类的指针指向子类,用此指针访问test01()函数,为什么访问的是父类的

父类的指针指向子类,用此指针访问test01()函数,为什么访问的是父类的

软件 2023-01-16

C++中用父类指针指向子类实例,用父类指针调用虚函数,问调用的是子类的函数还是父类的函数,为何?

你这个应该是调用的子类的函数,原因如下: 如果是虚函数,是可以通过基类的指针调用子类的函数的。 如果不是虚函数基类指针就只能调用基类函数

为什么父类访问子类方法调用的是子类方法,而访问子类属性时结果却是父类的属性

访问权限是出于安全性 你调用父类的方法,想当于地方机构向上级机构交个申请,你不需要知道上级里有多少个部门(方法),给过多少个人(变量)。那些是你指挥不到的。 公开和友好的方法可以被重写,如果需要调用父类同名的方法,需要用super.method来指定 私有方法,只能在本类里使用,你子类并不知道父类有没有调用。 象你说的父类的父类中的私有方法,没有被定调用的话,是不会被执行的。关于这块,不是很明白你想问什么。 你看一下面的代码,有什么疑惑,指出来。 class A { public void method1() { } private void method2() { // no call }

c++ 父类指针转换为子类指针后调用子类的成员函数,为什么可以调用成功?

父类指针指向子类对象,然后调用子类对象所继承(或改写)的父类方法,这就是面向对象的核心--多态 其实也好理解,子类对象的类型与其父类的类型是共通的,他就是从父类继承来的,如果把子类比父类新增的成员变量或成员函数去掉,他就是一个父类的对象,当然可以调用自己的方法 不过,一般多态不是楼主这么用的,\一般是用来参数传递上,比如一个方法,要对他传的的参数是一个父类的类型的对象,然后这个方法中调用这个父类的成员函数,而实际传进去的实参通常为子类对象,方法调用的是子类改写后的方法

父类指针 为什么能 指向 子类对象

为什么指向父类的函数指针不能指向子类的函数(不谈强制类型),而指向子类的函数指针可以指向父类函数,这个问题呢?当然啦,因为子类继承了父类,所以说他里面就有了父类的函数,所以可以指向啊,但是父类里没有子类的函数,就像结构体指针一样,他怎么能指向一个结构体里根本就没有的变量呢4.static 顾名思义,就是静态的,他是方法的,他属于这个类,由于是类的方法,他可以直接引用类名来引用方法,也可以通过类的对象来引用这个方法,他既不能被子类覆盖,也不能被子类继承。简单的说,他是在编译的时候就和类帮定在一起了,不能被运行时动态加载。——没覆盖也没继承,子类存有指向父类的引用

C++如何用父类访问子类函数呢?

所谓继承,就是指子类“是一种”基类。所以子类一定会具备基类的所有特征。 子类无法访问基类的私有成员,所以必须调用父类的构造函数来初始化父类的成员。 对於子类来说,它不是“不会调用父类的构造函数”,而是“隠藏”了它。必要时候,你还是可以用特殊方法显式调用的。 为了达到你的目的,你有两个选择: 一,为基类提供一个怠工(dummy)构造函数,不作为。 二,声明为虚函数。 BTW,构造函数唯一的目的在於初始化对象。获取资源而不初始化,有悖RAII原则。所以基本上,第一种情况不大可能出现。

标签:信息技术 编程语言 CC++ 编程 指针

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18