面向对象的几个问题

面向对象的几个问题。
1.如果是虚函数override的话,两个函数的原型必须完全的一致,包括函数名字,参数数目和类型,还有返回类型以及是否是const。
  如果两个函数,除了返回类型之外都完全一致的话,那么会出想编译错误。如果参数或者const不一致,那么就是两个函数。父类指针查找的时候是不会找到子类的。
2.如果不是虚函数,当子类的某个函数和父类的函数名字一样时,那么父类的这个函数就会被屏蔽。
  只需要区分这两种情况就可以了。首先看是否是虚函数,然后看原型。
 
 还有,虚函数是依靠虚表实现的。

时间: 2024-10-31 09:06:04

面向对象的几个问题的相关文章

ASP面向对象编程探讨及比较

比较|编程|对象|比较 ASP是Microsoft于较早期推出的动态网页编程技术,但其结合ADO对数据库方便快捷的访问.结合XML.COM/ActiveX等其它技术 实现服务器多层结构的功能使它在今天还有着顽强的生命力,并且依然有着一定的发展.ASP.Net虽然在架构上完全不同于ASP,但它很多内建对象也是基 于ASP进行扩展的.网上有无数的介绍ASP的文章,却鲜有介绍ASP面向对象以及与其它语言比较的,这也就是我下决心写这篇文章的原因.因为是早期的版本,ASP只提供了很弱的面向对象的接口.

JavaScript面向对象程序设计(8) 优雅的封装还是执行的效率?

优雅的封装还是执行的效率?这是一个悖论. 优雅封装的程序看起来是那么的美妙:每个属性被隐藏在对象之后,你所能看到的就是这个对象让你 看到的,至于它到底是怎么操作的,这个不需要你操心. 执行的效率就是另外一回事.就像是C语言和面向对象的C++之间的差别:C++很优雅,但是执行效率 ,无论是编译后的二进制代码还是运行期的内存的占用,都要比简单的C语言多出一截来. 这个问题在脚本语言中显得更加重要,因为JavaScript根本就是一种解释语言,解释语言的执行效率 要比编译语言低很多. 1.优雅的封装

面向对象-领域对象 和 实现对象是什么?

问题描述 领域对象 和 实现对象是什么? 如题,在面向对象技术中文版(原书名为object-oriented Technology)一书中领域对象 和 实现对象是什么意思?(原文为domain object与implementation object) 解决方案 要看上下文,具体它怎么解释的,从字面上看,前者代表数据实体,比如User Product等等,后者代表业务逻辑,比如ProductService,里面包含了GetProducts GetOrders等等逻辑 解决方案二: 领域模型是对领

JAVA之旅(四)——面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块

JAVA之旅(四)--面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块 加油吧,节奏得快点了 1.概述 上篇幅也是讲了这点,这篇幅就着重的讲一下思想和案例 就拿买电脑来说吧,首先,你不懂电脑,你去电脑城买电脑,和大象装冰箱里一样,是什么步骤?咨询 砍价 ,谈妥了就那电脑走人,对吧,这就是面向过程的思想,而面向对象是:你有一个哥们,他懂电脑,什么都会,你只要带他去,就行,你这个哥们就是对象,在JAVA中,我们就是操作一个对象去完成各种各样的操作的,这就是面向对

讲解Python中面向对象编程的相关知识

  这篇文章主要介绍了深入讲解Python中面向对象编程的相关知识,是Python入门学习中的基础知识,需要的朋友可以参考下 Python从第一天开始就是面向对象的语言.正因为如此,创建和使用类和对象是非常地容易.本章将帮助您在使用Python面向对象编程的技术方面所有提高. 如果没有任何以往面向对象(OO)的编程的经验,那么可能要了解一些基本的入门课程就可以了,或者至少某种形式的教程,让你有了解基本概念. 但是,这里会比较少地介绍面向对象编程(OOP): OOP术语概述 类: 用户定义的原型对

PHP面向对象精要总结

 1 使用extends实现继承以及重载.魔术方法的含义 class B extends A 声明的时候B里可以没有A里的方法 调用的时候: $b=new B(); $b->A里的方法(); $b->A里的属性=1; $b->B里的方法(); $b->B里的方法(); 如果$a=new A(); 可以 $a->A里的方法(); $a->A里的属性=1; 不可以 $a->B里的方法(); $a->B里的方法();   重载:B继承A ,B里实现和A同名的方法属

php面向对象(基础)

最近重新学习了php面向对象这一部分的知识,做了下笔记,分享给大家,其中一部分为自己的简介,加色部分一般为自己认为比较重点或需要注意的地方,分享给大家,还希望大家多提意见共同学习. 1. 析构函数:__destruct ( ) //这是一个析构函数,在对象销毁前调用 function __destruct() { echo "再见".$this->name.""; } 2. 构造函数:__construct( ) PHP子类能否继承父类的构造方法? 如果没有定

PHP中的面向对象和面向过程

对象|过程 简介"真正的天才具有正确评价不确定的,有风险的和矛盾的信息的能力.--邱吉尔" 使用许多编程语言时,你通常只能使用面向对象或面向过程二者之一的编程方式.而在PHP中,你可以自由选择或混用.目前绝大多数PHP程序员使用面向过程的方式,因为解析WEB页面本身就非常"过程化"(从一个标签到另一个标签).在HTML中嵌入过程处理代码是很直接自然的作法,所以PHP程序员通常使用这种方式. 如果你是刚接触PHP,用面向过程的风格来书写代码很可能是你唯一的选择.但是如

JAVA中面向对象编程语言的学习之路

编程|对象 第一步是安装好JDK 写一个Hello World,? 其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java程序员的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何加载Class的:另一个问题是package和import问题,如何来寻找类的路径问题.把这两个问题摸索清楚了,就扫除了学习Java和使用JDK的最大障碍.推荐看一下王森的<Java深度历险>,对这两个问题进行了深入的探讨. 第二步是学习Java

AJAX中JavaScript支持面向对象的基础

ajax|javascript|对象 在面向对象的思想中,最核心的概念之一就是类.一个类表示了具有相似性质的一类事物的抽象,通过实例化一个类,可以获得属于该类的一个实例,即对象. 在JavaScript中定义一个类的方法如下: function class1(){ //类成员的定义及构造函数} 这里class1既是一个函数也是一个类.可以将它理解为类的构造函数,负责初始化工作. 使用new操作符获得一个类的实例 在前面介绍基本对象时,已经用过new操作符,例如: new Date(); 表示创建