转自:https://zhuanlan.zhihu.com/p/77089496
C++语法太过繁杂,很多语法特性一辈子也用不上。对于初学者来说,学完前7章就能写简单的程序。
1. 基础部分
1.1. 语言
一、 C C 和 和 C++ 的特点与区别?
参考答案:
答:(1)C 语言特点:
1) 作为一种面向过程的结构化语言,易于调试和维护;
2) 表现能力和处理能力极强,可以直接访问内存的物理地址;
3) C 语言实现了对硬件的编程操作,也适合于应用软件的开发;
4) C 语言还具有效率高,可移植性强等特点。
(2)C++语言特点:
1) 在 C 语言的基础上进行扩充和完善,使 C++兼容了 C 语言的面向过程特点,又成为了
一种面向对象的程序设计语言;
2) 可以使用抽象数据类型进行基于对象的编程;
3) 可以使用多继承、多态进行面向对象的编程;
4) 可以担负起以模版为特征的泛型化编程。
二、 阐述 C++ 的多态
参考答案:
编译时多态:主要指泛型编程
运行时多态:
C++的多态性用一句话概括:在基类的函数前加上 virtual 关键字,在派生类中重写该函
数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用
派生类的函数;如果对象类型是基类,就调用基类的函数。
1) 用 virtual 关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数;
2) 存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的
虚指针。虚表是和类对应的,虚表指针是和对象对应的;
3) 多态性是一个接口多种实现,是面向对象的核心,分为类的多态性和函数的多态
性。;
4) 多态用虚函数来实现,结合动态绑定.;
5) 纯虚函数是虚函数再加上 = 0;
6) 抽象类是指包括至少一个纯虚函数的类;
纯虚函数:virtual void fun()=0;即抽象类,必须在子类实现这个函数,即先有名称,没
有内容,在派生类实现内容。
三 c++进阶到高级需要学习的内容
学习C/C++的伙伴可以私信回复小编“资料”领取全套免费C/C++学习资料、视频
- 数据结构和算法:《大话数据结构》
这实在是一本对新手非常友好的书,暂时先看完前5章就够了。此时应该多做一些练习,可以是简单的小软件或小游戏。
C++萌新到大牛,要看哪些书?
- C++标准库:《C++ Primer 第五版》
没错还是这本书,之前7章学了基础语法。现在继续学习8~12章,涵盖了标准库常用组件的基本用法。想完整学习标准库的同学可以在未来深入阅读《C++标准程序库:自修教程与参考手册》。
进阶学习:
此时可以选择性地把《C++ Primer 第五版》剩下的部分看完,第15章面向对象是重要内容,需要认真研究。
此时也可以把《大话数据结构》看完,或换一本正经的深入讲解算法的书,比如《算法导论》。
C++萌新到大牛,要看哪些书?
- 《Effective C++》、《C++编程规范》
C++给了程序员过高的自由度,这反而不是一件好事,这两本书告诉你使用C++哪些做法是正确的,哪些是错误的,C++进阶必读。还有一本补充读物《More Effective C++》可选读。
深入研究:
- 《深入探索C++对象模型》
深入分析了C++语言本身的设计思路和实现方式
- 《STL源码剖析》
带你阅读标准库源码,提升数据结构、模板技术相关能力。
- 《C++设计新思维》
讲元模板技术使用地出神入化,除非要自己写库,否则很少有机会用到这些技术。但真学会了真的可以出神入化。
掌握这些知识后,就可以算是C++高手了。但学软件开发不仅仅是学一门语言,根据不同的行业还需要学习windows开发、linux开发、界面开发、网络编程,软件工程、面向对象的分析和设计等等非常多的知识。这些不用全都学会,工作中用到什么学什么就可以了。