文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php与c++不同之处有哪些

2018-04-18 17:47

关注

本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。

php与c++不同之处有哪些?

区别:

一个有protected成员变量(假设为i)的类型Base,他的子类Derived直接继承自Base,同时Derived有一个成员函数func,他的参数是Base类型的,这个函数可以访问Base对象的protecte的成员吗?在C++中不可以,而在PHP中可以。

PHP中不支持C++中的重载,重新定义个函数(不管是参数相同还是不同,都会导致重复定义错误)。PHP有自己的重载方法,而且比C++中的更广泛,他不仅可以重载函数(通过使用__call()方法),还可以重载成员变量(通过使用__get()和__set())。而C++中只能对函数进行重载,而且重载的方法只有:不同的参数类型,不同的函数修饰符(const)。

PHP中有这两个修饰符,因为PHP不支持对一个普通类的多继承,因此interface用于实现多继承。Abstract类在C++中也存在,只是实现方式不一样,C++中使用pure virtual函数来表明这个类是抽象类,不能单独被实例化。而PHP中不仅可以使用函数的修饰符abstract(另外class前也必须标明abstract)来标明这个意思,也可以只使用abstract修饰符修饰class更直接的表明他是抽象类。另外, C++中的pure virtual函数不受访问类型的限制,不管是什么访问类型,都会被看作是public;而php中的abstract函数不能被声明成private,仅此而已。

因为PHP是弱类型语言,所以他的多态性到处都有体现,导致他的多态性不像C++中那么明显。比如,在PHP中基类的函数可以看作全是virtual的,因此它不需要加任何修饰符,子类中和基类同名的函数都会被动态调用,而C++不一样,如果基类中的这个函数没有加virtual修饰符,子类中的那个同名函数就不会被动态调用,只能静态调用了。

PHP中不存在,而C++存在。重点在==操作符,在PHP中他可以运用在任何类型上,即使这个类型没有(像C++中一样)写自己的==重载函数。PHP中对于对象的比较,==表示两个对象的属性和值都一样,而且类型也一样;PHP也存在一个===操作符,表示他们引用了同一个对象,这跟java中很像吧。

PHP中存在这个关键字,表示这个函数不能被重写(如果他用来修饰函数),或者类不能被继承(如果用类修饰class)。而C++中没有这个关键字,也无法模拟出那个效果。

C++中的拷贝或者赋值大致有这三种方式。

一种是指针的赋值,即p1 = &obj,相当于PHP和java中的赋值操作;

另一种是memberwise assignment,也就是在obj1 = obj2时发生的事情,默认情况下执行浅度拷贝,和PHP中clone的效果一样。他可以通过重载赋值拷贝操作来执行你的深度拷贝或者其他自定义的拷贝,这就相当于PHP中的__clone()成员函数;

第三种是memberwise initialization,也就是在参数传递时,传递返回值时或者包含对象的容器初始化的时候自动运行的,你可以通过自己定义拷贝构造函数来控制它的效果。

拷贝构造函数在PHP中几乎用不到,因为他的传递是完全按引用传递,而不是对象的直接拷贝。

PHP简介:

PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己,例如java的面向对象编程,该语言当初创建的主要目标是让开发人员快速编写出优质的web网站。 [1-2] PHP同时支持面向对象和面向过程的开发,使用上非常灵活。

C++简介:

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

以上就是php与c++不同之处有哪些的详细内容,更多请关注编程界其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯