C++ 学习之旅

来源:互联网 发布:mac如何删除word软件 编辑:程序博客网 时间:2024/06/08 15:30

如何阅读源码

诸多好的开源项目,其代码写的非常优秀,有很高的参考价值,需要用好的方法去阅读,否则,小则几万,多则几十万的代码,会把人给读死的。整理一些读源码的方法,以后发现更好的再不断修改,希望此方面能力能有所提高。

C/C++拾遗
http://blog.chinaunix.net/special/show/sid/1129/page/2.html

第一工具的选择(这个非常重要),

Linux:vim + ctags + taglist .

windows:sourceinsight :官方网站http://www.sourceinsight.com/ 以及UML

第二准备工作(准备越充分,成功的可能性越高):

软件产品各有特点:有的重业务逻辑、有的重产品特性、有的重高性能、有的重可复用,等等,所以,准备工作是最重要的,必须有对于其自身的特点有很多的了解,否则,读的时候很费劲而且根本无法读透彻。

第三阅读的方法(方法无数种,关键要用心):

1,明确一点:不可能一遍看透,温故知新。2,一遍阅读一遍整理框架,写好注释,绘制UML。3,找到核心业务逻辑,或者主要函数。4,带着问题去阅读,避免迷失。5,了解主要执行过程,可以用debug来跟踪下。6,一半时间广度优先,一半时间深度优先。7,跟着从头Main()开始写个精简版程序。8,没看懂的地方先略过,做好标记,整理好问题,下次再解决。9,框架->类->函数。业务流程->类序列->函数序列。10,理清自身功能,外部接口,通信方式,交互方式

第四学习到的东西(带着目的和问题去做):

1,架构的设计。2,类的设计。3,业务流程的展开。4,函数的设计。5,技术细节。

1、Makefike 入门与基本语法

  makefile可以自动识别哪些文件修改过 需要重新编译,哪些不需要 从而节省大型工程重新编译的时间。
1)如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。
2)如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程。
3) 如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。
学会编写Makefile,不仅仅有益于你在Linux下编写大型工程。同时也能帮助你理解编译原理。远离IDE,了解编译过程。

2、OOP编程思想–面向对象编程思想

OOP(Object-Oriented Programming)面向对象是一种思想,不限于具体一门语言。OOP的五大特性:抽象、封装、多态、继承、代码可重用性。OOP 的核心是建模,将万事万物进行归类,抽象出属性和方法。

OpenGL(全写Open Graphics Library)是指定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图形库。

3、ENUM概况

enum枚举类型是C/C++中的一种数据类型,与struct和class一样是用户自定义的类型,其特点在于enum类型的变量取值是有限的,是可以意义列举出来的。

enum day...{Sun,Mon,Tue,Wed,Thu,Fri,Sat};day d=Sun;//d只能等于“Sun,Mon,Tue,Wed,Thu,Fri,Sat”中的一个,没有其它值!enum ...{Sun=10,Mon,Tue,Wed,Thu,Fri,Sat} d1,d2,d3,d4;  d1 = Sun; d2 = Mon; d3 = Tue; d4 = Wed;  cout< < d1< < " "< < d2< < " "< < d3< < " "< < d4< < endl; //输出 10 11 12 13  enum ...{Sun=10,Mon=1,Tue,Wed,Thu,Fri,Sat} d1,d2,d3,d4;  d1 = Sun; d2 = Mon; d3 = Tue; d4 = Wed;  cout< < d1< < " "< < d2< < " "< < d3< < " "< < d4< < endl; //输出 10 1 2 3  

Linux 为何物

Linux 就是一个操作系统,就像你多少已经了解的 Windows(xp,7,8)和 Mac OS ,至于操作系统是什么,就不用过多解释了,如果你学习过前面的入门课程,应该会有个基本概念了,这里简单介绍一下操作系统在整个计算机系统中的角色。这里写图片描述

这里写图片描述

2.Shell

通常在图形界面中对实际体验带来差异的不是上述的不同发行版的各种终端模拟器,而大都是这个 Shell(壳),有壳就有核,这里的核就是指的 UNIX/Linux 内核,Shell 是指“提供给使用者使用界面”的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe。普通意义上的 Shell 就是可以接受用户输入命令的程序。它之所以被称作 Shell 是因为它隐藏了操作系统底层的细节。同样的 Unix/Linux 下的图形用户界面 GNOME 和 KDE,有时也被叫做“虚拟 shell”或“图形 shell”。

Unix/Linux 操作系统下的 Shell 既是用户交互的界面,也是控制系统的脚本语言。

4).学会在命令行中获取帮助

在 Linux 环境中,如果你遇到困难,可以使用man 命令,它是Manual page的缩写。

创建新用户  sudo adduser wangjun切换用户  su -l wangjun退出用户  exit

ls 列出并显示当前文件夹下的文件

2.目录路径

路径

有人可能不明白这路径是指什么,有什么用。顾名思义,路径就是你要去哪儿的路线嘛。如果你想进入某个具体的目录或者想获得某个目录的文件(目录本身也是文件)那就得用路径来找到了。

使用 cd 命令可以切换目录,在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录(**注意,还记得我们上一节介绍过的,以 . 开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,你可以使用 ls -a 命令查看隐藏文件), - 表示上一次所在目录,~ 通常表示当前用户的”home”目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。

进入上一级目录:$ cd ..
进入你的“home”目录:

$ cd ~
或者 cd /home/<你的用户名>
使用 pwd 获取当前路径:

$ pwd 当前目录

创建一个脚本shell
gvim hello_shell.sh
编写程序
添加可执行权限
chmod 755 hello_shell.sh
执行脚本文件 ./hello_shell.sh
创建目录 mkdir mybin
移动文件 mv hello_shell.sh mybin/

0 0