C++入门基础知识

————————————— 一篇面向C++初学者的知识点/笔记总结————————————

注:本文内容主要面向C++初学者,整理了部分入门级知识点。文中会通过注释及实例去验证,建议读者在阅读时深入理解,自我实现代码的验证与理解。

begin:

1.C++于C的区别:

--》C++的使用和C比较类似,与C语言不同的点在于以下几点:

(1) C++是在C的基础上扩充了很多内容,功能更加强大;

(2) C++是完全兼容C的:C中合法的程序在C++中也是合法的;

(3) C++更注重面向结果,而C更注重面向过程1.

2.C++的第一个程序:

注:C++中的输入流为:cin>>要输入的内容
                       输出流为:cout<<要输出的内容

 3.引用类型:

定义:给已经存在的变量起个别名,和变量指的是同一片内存空间;

格式:int a = 10;int&b = a;        即给变量a起了个别名叫做b;

引用的目的:弱化指针,减少临时空间的分配(定义指针需要分配内存空间,引用不需要);

引用和指针的区别(经典面试题

(1)引用需要初始化,指针可以不初始化;

(2)引用只能初始化一次;

(3)指针可以改变指向,相比之下使用引用比指针更加安全;

(4)指针需要开辟空间,内存不需要

eg:使用引用和指针:

4.函数重载:

定义:函数名相同、功能类似、函数参数不同、与返回值无关(个数、类型、顺序)的一组函数互为重载

根据定义我们定义一组重载函数:

从这段代码中可以体现出函数重载的概念,这几个函数的功能都是求几个数的和,函数名也相同,

 函数①和函数②的参数个数不同;函数①和函数③的函数类型不同,他们之间互相构成重载。

5.参数默认值:

定义:在定义函数的时候,给参数默认值

存在问题:调用重载函数时系统会不识别应该进行哪一个函数。

 子函数中定义函数时,形参个数为3个,我们在调用这个函数时,给实参了两个参数,就会导致程序无法正常运行,如何解决这个方法呢?此时我们可以在定义函数时给子函数的形参给到默认值

给所有的参数一个默认值,就可以通过多种方式去进行调用!!!

需要注意的是:默认值给的顺序是从右往左,而我们在调用函数时,给参数的顺序是从左向右,特别是在函数重载时,一定要注意参数的默认值,否则容易产生“二义性”!!!

6.C++中引入C自定义的库

创建静态库的步骤:

(1)创建源代码.c文件   fun.c

(2)生成对应的.o文件:gcc -c fun.c -o fun.o

(3)生成静态库:ar crs libmyfunc.a(静态库名) fun.o(依赖文件

(4)链接静态库:g++ main.cpp -L. -lmyfun

下面我们制作一个自定义静态库:

注:gcc编译,函数名不变;g++编译,函数名变化;

7.动态内存分布:

malloc    free :在堆区分配、回收内存空间

new      delete:运算符开辟、释放空间

(1)开辟、释放空间

(2)未初始化的结果(结果为随机值)

(3)初始化

      

8.类和对象

        --》C++中的结构体和C中结构体的区别

(1)C中的结构体不能有函数,C++结构体中可以存在函数;

(2)C中空结构体的内存大小是0,C++中空结构体的内存大小是1

        --》类:(关键字为class)把属性和行为整合在一起去描述一类事物的自定义的数据类型

        --》对象:使用类定义出来的变量

9.构造函数和析构函数

构造函数:函数名和类名一致、无函数类型、参数不定的函数

析构函数:用来清理构造函数中有在堆区申请分配过空间的函数

注:(1)构造函数用来对数据进行初始化,在创建这个对象的时候就已经调用了,系统会帮我们调用,如果我们没有去定义构造函数,那么系统会设定一个默认的构造函数(无参数,函数体为空);(2)在对象生命周期结束时,系统自动调用,若用户未定义析构函数,系统会提供。

eg:构造函数和析构函数的示例:

 emmm,先到这里吧......

the end

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值