Linux学习笔记----c++

C++:支持面向对象编程,泛化编程和过程化编程。

应用领域:

1.服务器端开发

2.游戏引擎的开发

3.虚拟现实:VR等

4.数字图像处理

5.网络软件

........

#include包含头文件时使用 “ ”和< >的区别

符号“ ”: 编译器在执行应用程序时,首先会在当前项目里寻找库文件,然后去标准库里寻找。

符号 < >: 编译器在执行应用程序时,首先会在当前标准库里寻找库文件,然后去项目里面去寻找。

c/c++的程序编译流程有哪些?具体做了什么样的工作?

预处理

        a、将除源文件以外的内容全部加入到源文件中。

        b、进行宏替换工作:#define num 10

        c、删除注释

        c、进行条件编译:#ifndef # define #endif等等

编译

        a、将用户编写的代码翻译成汇编语言

        b、检查用户编写的c/c++代码是否符合语法规范

汇编

        a、将编译阶段生成的汇编语言转换成机器语言(二进制)

链接

        a、连接目标代码,生成可执行程序

malloc / free和new / delete的区别

1.malloc/free是函数,new/delete是操作符

2.malloc申请空间时需要手动计算空间的大小,new申请空间时不需要手动计算控件的大小

3.malloc申请空间时需要强制类型转换,new申请空间时不需要强制类型转换

4.malloc申请空间时没有对空间进行初始化工作,new申请空间时对申请的空间进行了初始化工作

5.malloc申请空间时适用于基本的数据类型,而new申请空间时可以自定义数据类型

6.malloc只会申请空间,不会进行其他工作,free只会释放空间,不会进行其他工作,而new不仅会申请空间还会执行类的构造函数的工作,delete不仅会释放空间还执行了类的析构函数的工作。

指针与引用的区别:

1.指针声明时,可以不用进行初始化工作,而引用一旦声明必须进行初始化工作

2.指针可以指向多个实体,而引用只能指向一个实体

3.编译器会为指针分配内存空间,但是不会为引用分配内存空间。

浅拷贝和深拷贝

1.浅拷贝:用已存在对象初始化新的对象时,只拷贝变量名和值(没有指针向对空间开辟空间的情形)

2.深拷贝:指类体里含有指针对象并开辟了堆空间,用已存在的类初始化新的类,深拷贝不仅拷贝指针对象名,还会重新复制一份指针对象指向新的地址

普通成员函数与构造函数的相同点和不同点

不同点:

1.构造函数没有返回值,而普通成员函数有返回值

2.构造函数名是类名,而普通成员函数是任意标识符

3.构造函数在创建类的对象时会自动调用,而普通成员函数需要手动调用

4.构造函数的作用一般是初始化类的成员变量,而普通成员函数只能通过传参的形式。

相同点:

1.普通成员函数和构造函数都是函数

2.都可以携带参数或者不携带参数

3.都可以发生重载

重写、覆盖/隐藏、重载的区别?

1.重写:是将原来的内容重新书写一边

2.覆盖/隐藏:将原来的内容进行覆盖或隐藏(继承或多继承)

当子类中与父类没有相同的成员时,继承之后,子类会隐藏父类的成员

当子类中与父类有相同的成员时,继承之后,子类会自动屏蔽或覆盖与父类相同的成员。

3.重载:函数名相同,函数的参数(参数类型|参数个数|参数顺序)不同

运算符重载:指将基本的运算符赋值给新的数据类型的计算,并将该运算符强制修饰为新的函数形式。 

不能进行重载的运算符有:" . "       " .* "    "  ->* "    " :: "     " sizeof  "   "  ? :  "   "   #   "   七个

关键字 operator

格式:  返回的类型  operator 重载的运算符 ( const 类名 & obj) {    }

抽象类:含有纯虚函数的类

纯虚函数 : 令虚函数等于0,表示为” 纯虚函数  "

例如:virtual void run()=0;

异常:

    1)catch捕获异常是通过比较catch的参数类型与异常的类型
    2)一个try后面紧跟需要至少有一个catch块
    3)try里如果确定有异常产生,但是try后面没有写捕获该异常的catch块,那么该异常会被推送到上一级的异常处理,假如上一级也没有处理该异常的catch块,那么继续推送到上一级,如果最后到main函数里都没有处理该异常的catch块,那么会调用windows的termlate来终止该程序
    4)异常捕获的流程,首先是try后面的第一个catch块去匹配异常,如果没有匹配上,继续往后的catch进行匹配
    5)catch块里有3个英文字符类型的小点“.”,表示捕获所有异常,一般将它放置到catch块的最后面
    6)try....catch可以发送嵌套,嵌套的try..catch异常的捕获,遵循第3)步骤

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值