【C++】总体认识,c++与java简单对比

简介: 【C++】总体认识,c++与java简单对比

20181022095342658.jpg


 学习了C++的一些知识,因为Java是用C写的,而C++是对C的封装,所以有java基础,学C++不难。


     C++在形式上比java繁琐,比如要有main方法,函数定义,成员变量赋值,静态成员赋值等。


     但是C++有指针类型,所以在操作类,函数,数组上,更灵活,这也是一个难点,但理解了指针,我们对内存的底层分析就更好理解了。


     C++和java都是面向对象的语言,在封装,继承,多态三个基本特性上的表现基本一样。对成员变量的访问权限(private,public,protected)。在继承方面,c++ 支持多继承,所以有二义性问题,需要使用作用域限定符限制同名函数具体属于哪个类。涉及到多态,有关键的两点:重载和虚函数。重载在这里不再赘述,记住关键性两点:函数名相同,参数列表不同;多态的关键之处是:一切用指向基类的指针或引用操作对象。使用虚函数,可以保证用基类的指针来调用子类的函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。关于虚函数的解释,详情请见:C++中虚函数的作用是什么?它应该怎么用呢?。


      还有印象很深的就是友元函数,扩展函数的一种方式,破坏了对象封装的特性,但可以通过友元函数访问其他类的成员变量,更灵活。


      以上是博主对C++的整体认识和与java做的一些区分,后续会继续学习,分享。



相关文章
|
2天前
|
算法 Java C语言
C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
|
2天前
|
Java C++
部落(pta)(并查集) Java以及C++
部落(pta)(并查集) Java以及C++
11 2
|
2天前
|
Java C++
愤怒的牛(java c++)(二分典型例子)
愤怒的牛(java c++)(二分典型例子)
8 1
|
2天前
|
编解码 JavaScript 前端开发
【专栏】介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例
【4月更文挑战第29天】本文介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例。Base64编码将24位二进制数据转换为32位可打印字符,用“=”作填充。文中展示了各语言的编码解码代码,帮助开发者理解并应用于实际项目。
|
2天前
|
Java C++ Kotlin
进制转换在C/C++/Java/Kotlin中的应用(详细版)(下)
进制转换在C/C++/Java/Kotlin中的应用(详细版)
13 1
|
2天前
|
存储 人工智能 Java
进制转换在C/C++/Java/Kotlin中的应用(详细版)(上)
进制转换在C/C++/Java/Kotlin中的应用(详细版)
9 0
|
2天前
|
存储 Java C++
leetcode 2525 根据规则将箱子分类 c++ pyhton java c题解
leetcode 2525 根据规则将箱子分类 c++ pyhton java c题解
14 1
|
2天前
|
算法 IDE Java
【软件设计师备考 专题 】面向对象程序设计语言:C++、Java、Visual Basic和Visual C++
【软件设计师备考 专题 】面向对象程序设计语言:C++、Java、Visual Basic和Visual C++
53 0
|
2天前
|
Java API 开发工具
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(三)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
32 0
|
2天前
|
Java 数据处理 数据库
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(二)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
37 0