c++基础知识总结

目录

1.浅谈一下c和c++的理解?

2.指针和引用的区别?

3.值传递、地址传递、引用传递的区别?

4.引用作为函数返回值的时候,调用的变量需要加上static修饰

5.命名空间:

6.常引用

7.C语言const关键字的作用

8.static关键字的作用

9.C++  const关键字的作用?

10.如何打破const关键字的限制?--->mutable   mutable int num;

11.struct 和 class 的区别

12.构造函数

13.析构函数

14.new delete 和 malloc free 之间的区别?

15.拷贝构造函数

16.深浅拷贝的区别

17.友元函数及作用

18.设计模式--单例模式

19.c++中的异常机制

20.c++面向对象的三大特征

21.运算符重载

22.虚函数

23.重写重载重定义

24.虚继承 虚基类

25.纯虚函数 和  抽象类

26.虚析构

27.模板、泛型编程template

28.STL

29.C++11新特性


1.浅谈一下c和c++的理解?

c语言是一个面向过程的一种语言、c++是一种面向对象的一种语言

面向过程:就是按部就班一步一步来,想到每一个步骤需要调用什么函数,按照顺序调用函数。

面向对象:就是把问题分解成一个个对象,而对象不是为了解决某一个步骤,而是为了描述事物在解决过程中的行为。

2.指针和引用的区别?

  1. 引用必须初始化而指针不用初始化
  2. 引用初始化之后不能改变对象,而指针则可以通过地址来改变对象
  3. 引用不能赋予空值,而指针则可以赋予空值
  4. 引用是原来变量的别名,指针则是一种新的变量

3.值传递、地址传递、引用传递的区别?

值传递:实参把值传递给形参、与原来的实参就没有关系、相当于产生了一个新变量、一个新的地址。

地址传递:形参的改变会影响实参,会创建一个指针变量开辟一个新空间,指针保存着实参的地址。

引用传递:形参的改变会影响实参,相当于实参的别名,不需要开辟新的空间

4.引用作为函数返回值的时候,调用的变量需要加上static修饰

Int &num(){

Static int num;//延长生命的周期、返回值是引用为变量本身

num=100;

return num;

}

5.命名空间:

  1. 避免出现同名冲突、避免命名空间污染
  2. C++中命名空间只有一个
  3. 类、对象、c++库函数都在std命名空间定义

6.常引用

  1. const int& ret 常引用
  2. 可以直接调用常量
  3. 常引用作为函数形参的时候、在函数中只能以只读的形式存在、值不能改变

7.C语言const关键字的作用

  1. const修饰变量的时候定义就被初始化、值不能被改变
  2. const修饰函数形参变量的时候、该变量在函数中值不能被改变
  3. const修饰类成员变量的时候,成员函数调用成员变量只能以只读的形式

8.static关键字的作用

c语言:

  1. static修饰全局变量、只能在本文件被调用
  2. static修饰函数、只能在本文件被调用
  3. static修饰局部变量、变为静态变量作用域不变延长生命周期直至整个程序结束为止、多次被调用只能调用一次

C++:

  1. 类的内部成员用static修饰后变为静态成员变量
  2. 静态成员必须要进行类外声明->分配空间、未初始化为默认值
  3. 该类的多个对象可以共享该静态成员变量、静态成员变量不建议使用对象进行调用(语法没有报错、但是没有什么意义)、可以直接通过类名进行调用。
  4. 静态成员函数->没有this指针只能访问静态成员变量、只能调用静态成员函数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值