关于C++

1.函数:

形参和实参。形参不占用存储空间。当调用函数时候才开辟空间存放实参。当函数调用结束时候,形参空间被自动释放。

有2种传递机制:值传递和引用传递。

值传递是操纵内部变量,不会影响主调函数实参的值,是单向传递。

内联函数(inline关键字):取消调用环节,在编译时就直接嵌入到主函数之中。提高执行效率,但仅仅允许简单的函数、

默认参数:不可以是局部变量,右边必须也是默认参数。

函数重载:形参个数不同或类型不同。同一个函数名字。

函数模板(template关键字):template<typname t1,classt2>-模板形参表

2变量的生命域

定义屏蔽,屏蔽子区域的同名变量。

现代程序设计的观点是尽量不用和少用全局变量,少用静态存储,多用动态存储。

静态局部变量(static)长久的占用存储空间。可用于计算函数的调用次数,不会释放。

3.指针相关

迷途指针:指向已知对象得指针对象内存空间被释放后,该指针指向未知。

指向const对象的指针,不允许通过赋值改变该类指针的值。用于函数形参。const int *

const指针,int *const pc;

函数名就是一个指向函数的指针

函数指针:int(*P)(int a, int b);p=max,p=min;

4.引用相关:

int &x=y;就是本身,

5.动态分配内存:

p2=new int(10)    ;  deleete p2;

p1=new char[80]  ;  delete[]p1;

内存泄漏指分配完内存后不释放,导致内存空间越来越小。

6.枚举类型名与结构体类型名与共用体:

共用体:存储空间为总和。

共用体:Union,取最大的空间。

枚举enum,默认从0开始。

7.类,包括成员函数和数据类型,有Public(可以被任意访问),private(只能通过类中的成员函数访问),protected(和private一样,但可以被派生类成员访问)。成员函数也可以重载,但必须在类中第一次声明时就指定。实例化对象时, 每个数据成员分别分配存储空间,但是成员函数在公共存储空间中存放。类的实例化是对象,对象也可以通过对象指针,对象引用作为函数参数。可以返回局部对象,但是不可以返回局部对象指针,因为其函数调用后空间被释放,变为迷途指针。

8.构造函数:

类函数名(参数,可以指定默认参数):初始化列表{函数体};不应该同时使用构造函数重载和带有默认参数的构造函数。

默认构造函数有2种:不带参数的构造函数和带有默认参数的构造函数。如果没有构造函数,编译器自动生成合成默认构造函数。

复制构造函数:类函数名(Const 数据类型&obj),无论有无自定义函数,都存在合成复制构造函数。

2种形式:复制初始化和直接初始化。

复制初始化=,调用复制构造函数。直接初始化(),调用参数匹配的构造函数。

深复制和浅复制:

对于指针类型,浅复制指复制地址;深复制连同内存空间一起复制。

9.析构函数:

~类名(){},撤销对象时自动调用析构函数,合成析构函数调用时逆序撤销已创建的成员。

析构函数三法则,析构函数+复制构造函数+赋值运算符重载正在。(深拷贝)

10.

c++四大指针:数据,函数,数据成员,成员函数指针。数据成员指针需要在前面做域运算限定。使用类成员指针的2个方法:

.*和------>*。还有一个隐含的额外形参指针this,当函数参数与成员同名时,也需用this。

11、派生类

derived,公有,私有,保护继承。继承具有同名覆盖性。友元不具有继承性质。

保护成员与私有成员的区别:派生类可以访问基类继承的保护成员,不能访问私有成员。派生类友元可以访问派生类中派生的成员。基类私有成员只有基类可以自己访问。

12、三种继承方式:

公有继承:维持不变

保护继承,公有,保护变保护

私有继承:全部变为私有继承。

13.多态

基类定义的对象,指针,引用,可以用派生类实例化。赋值兼容规则。

14.静态联编和动态联编

动态:只有通过指针或引用,指向那个对象,就调用哪个对象的成员函数(虚函数)。

静态:.操作

虚函数:仅当派生类同名函数,增加功能时才需使用。

15.虚析构函数

基类析构函数声明为虚函数,在派生类析构时正确析构,避免内存泄漏。

16.纯虚函数和抽象类

当需要在基类中定义虚函数,但需要在派生类中才实现它时,应声明为其为纯虚函数(virtual .....=0),包含纯虚函数的类是抽象类。

17.运算符重载(operator):类的成员函数(参数个数少一个),和友元函数(正常个数)2种形式。

18.类模板:template<class t>,用T定义类模板,之后实例化类。

19泛型编程思想:通过类模板和函数模板实现源代码级别的重用。

20.异常处理:终止模型(假设异常,直接终止)和恢复模型(恢复异常未发生时的状态):

21.命名空间:空间内独立的函数名,变量,不同模块相互组合。

 

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值