Linux 下的c++学习(一)

5 篇文章 1 订阅

1 c++开发环境搭建

  1. 操作系统(OS):Linux ,这里使用ubuntu20.04。推荐购买云服务器,然后xshell远程链接学习。推荐配置免密登陆。
  2. Tools: Vscode
  3. 插件:https://zhuanlan.zhihu.com/p/113222681

2 简单回顾

2.1 编程语言的演化

     初期:二进制编程,面向机器的01操作。

     缺点:不具可读性,编写难。

     发展:汇编语言,面向硬件,即指令直接操作硬件的机器语言。

     操作:助记符代替机器指令码01,增强了程序的可读性和编写难度,汇编也称符号语 言。语言的第一次进化----符号化。

     缺点:不可移植。

     过渡:b-语言

     进化: c-语言,面向过程,结构化语言。强调算法的整个过程。提高了编程的可靠性,可移植性。

    缺点:大型程序设计不友好。

    成熟: c++, 面向对象,c-语言增强版,强调数据或者功能。增强了代码的复用与扩展性

2.2 谈谈面向过程与面向对象(OOP)的区别?

     面向过程是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现。面向对象是以功能来划分问题,而不是步骤。如设计五子棋,面向过程的设计思路就是分析问题的步骤:(自顶向下)

   1-开始游戏,2-黑子先走,3-绘制画面,4-判断输赢,5-轮到白子,6-绘制画面,7-判断输赢,8-返回步骤2,9-输出最后结果。

     面向对象的设计思想来解决以上问题。面向对象的设计则是从另外的思路来解决问题:

  1、黑白双方:这两方的行为是一模一样的(可以下棋)
  2、棋盘系统:负责绘制画面(棋盘)
  3、规则系统:负责判定如犯规、输赢等。
  4、组合对象行为即可。

     面向过程的优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发。

     面向对象优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。

2.3 在学习编程之前需要了解一下何为程序?

  1. 程序是一个指令序列。

  2. 程序 = 数据结构+算法

  3. 计算机处理的两个核心概念是数据与算法。数据可理解为存储计算机的可用资源,算法则表示资源的使用方法。需要注意的是受制于计算机物理结构以及便于算法设计,出现了中间概念数据结构。

  4. 如果有人提前了解过进程的概念,这里需要和程序区别一下。简单的说,进程(动态)是指一个运行的程序(静态)。

3 c++的编译过程

# 准备简单测试源程序:test.cpp(内容可以为:Hello World!)
# 1 预处理:宏替换与库代码加载,代码体量变大,test.i。
gcc -E test.cpp -o test.i
# 2 编译:将预处理代码转换为汇编码,test.s(汇编文件)
gcc -S test.i -o test.s
# 3 汇编:将汇编码转换为二进制机器码,test.o(模板文件)
gcc -c test.s -o test.o
#4 链接:将多个目标文件及库文件链接成最终可执行文件
gcc test.o -o test

至此,对c++有了大致的认识,但是许多深入概念需要进一步学习。下一节学习c++ 静态库/动态库制作。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值