C++基础知识详解

目录

一、基本知识点

1.C++和c有什么不同

2.命名空间

3.标准输入输出流

4.引用

引用和指针的区别

5.函数重载

6.参数默认值

7.动态分配内存

new和malloc的区别

为什么有了malloc和free,还需要new和delete呢?

二、进阶知识点

1.面向对象编程中类和对象

2.封装类

3.this指针

4.构造函数

5.析构函数

6.拷贝构造

浅拷贝

深拷贝

什么时候用浅拷贝?什么时候用深拷贝呢?

三.double进阶

1.static修饰

static修饰数据成员

static修饰成员函数

2.const修饰

const修饰数据成员

const修饰成员函数

const修饰类对象

3.mutable修饰符

4.友元

友元函数

友元类


一、基本知识点

1.C++和c有什么不同

1.C++是在c的基础上扩充了很多内容,更加强大

2.C++完全兼容c,即在C中合法的程序,在C++中也是合法的

3.C语言面向过程(更注重过程,数据属性+对数据的操作)

   C++面向对象(更注重结果, 对象+对象)

2.命名空间

在C中同一个作用域下不允许出现函数名相同或者变量名相同的情况

命名空间就可以解决这个问题

格式:namespace   命名空间名字

{

            变量或者函数名;

}

访问:1.命名空间名::变量或函数名();  //main中使用

           2.using namespace  命名空间名字;   //main外面使用

3.标准输入输出流

加头文件:#include <string>

                  using namespace std;

输入:cin>>变量;

输出:cout<<"要输入的东西"<<endl;   //endl是换行;

4.引用

 目的:弱化指针,因为引用可以实现和指针一样的效果;使用方便!

与指针的不同:减少临时空间的分配;定义指针需要分配内存空间,而定义一个引用是不需要的

什么是引用:其实就是给已经有的变量起个别名!它和变量指的是同一块内存空间!

定义格式 : Int a=10; int &b = a;

引用和指针的区别

  1. 引用一定要进行初始化;指针可以不初始化;
  2. 引用只能初始化一次;指针是可以改变指向;使用引用比指针安全
  3. 指针需要开空间,引用不需要

5.函数重载

什么是函数重载:函数名相同,参数不同(顺序,类型,数量), 与返回值无关的一组函数互                              为重载

函数重载的原理:编译后会对函数名进行重命名,不同的函数名对应的函数在内存中的地址是不一

                            样的,调用的时候自然执行不同的函数

6.参数默认值

参数默认值就是在定义函数时,给参数的默认值

注意事项:1.默认值给的顺序是从右向左;在调用函数的时候,给参数的顺序是从左向右!

                     特别是在函数重载的时候,一定要注意参数默认值可能会产生“二义性“!!!

                  2.参数默认值不能同时出现在函数声明或者函数定义中,只能出现在一处

7.动态分配内存

C语言:malloc与free

c++:new与delete

new和malloc的区别

1.new时运算符,malloc是函数

2.new可以重载,malloc不可以

3.malloc在堆区开辟空间, new在自由存储区开辟空间

4.malloc开辟空间失败返回NULL,new分配空间失败,抛出bac_alloc异常

为什么有了malloc和free,还需要new和delete呢?

因为malloc和free是C标准库中的函数,肯定不会去执行构造函数和析构函数的!而new和delete是会执行的!

二、进阶知识点

1.面向对象编程中类和对象

把一个的属性和行为整合在一起,来描述一类事物的,自定义的数据类型,在C++中称为类

关键词:class

类有三个访问成员的限定符:pub

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值