C++ 基础小节2

1、const相关

1.常对象: const 类类型 对象名;
2.常对象的特性: 1) 常对象的数据成员不能修改 2)常对象不能调用一般函数,只能调用常函数; 3)常函数返回的引用必须是常引用
3.常函数: 类的成员函数形参列表右边写上const,常函数特性: 常函数不能修改数据成员的值;
4.C++的两种特殊重载: 1)常函数重载, 2)操作符重载;
5.声明成员函数时尽量将不会修改数据成员的函数设置为常函数,常函数更通用: 因为常函数可以被常对象调用,也可以被一般对象调用;

2、static相关

1.静态数据成员: 1)在类内声明,必须在类外初始化,(加类域,去static);
2.静态数据成员在.data已初始化数据区,是在程序加载到内存时确定内存并初始化;
3.静态数据成员的特性: 
        1) 可以用对象名访问,也可以用类名访问;  
        2)不管创建多少个对象,它们的同名静态数据成员只有1个
4.静态成员函数: 1)在类内声明,类外实现时必须将static去除;
5.静态成员函数的特性: 
        1)可使用对象访问,也可使用类名访问, 
        2)静态成员函数不能访问一般成员,只能访问静态成员  
        3)在静态成员函数中不能使用this
6.一般成员函数能够访问一般成员,也能访问静态成员;
7.静态成员函数作用: 用于创建对象和销毁对象;
8.C++中常见开发模式:单例模式、工厂模式,观察者模式,访问者模式,工作流模式;
9.单例模式的特征:不管调用多少次,永远一个对象
10.实现单例模式:
        1) 要把构造函数,拷贝构造函数设置为private; 
        2) 定义一个静态成员函数负责创建对象
        3) 对象指针是静态数据成员
11.用于文件系统管理类;

3、访问限定符相关

1.封装类时指定访问权限:
                    本类              子类              类外
public 公有的         可以           可以                可以
protected 保护的      可以           可以                不可以
private 私有的        可以           不可以              不可以
默认权限(私有的)       可以           不可以              不可以
2.如何设置访问权限:
1).如果只在本类中使用,就设置为private;子类不能继承;
2).如果要在本类和子类中使用,就设置为protected;子类能继承;
3).如果要在类外访问,必须设置为public的;子类能继承;

4、构造函数相关

1.构造函数:函数名与类名相同,没有返回值,构造函数可以重载
2.构造函数的作用: 在给对象分配完内存后对数据进行初始化(还会调用一些初始化函数);
3.构造函数的执行: 1) 构造函数是在创建对象时自动调用;  2)new或new[]会自动调用构造函数
4.没有调用构造函数 1)用已初始化对象为未初始化对象赋值时; 2)形参对象的创建没有调用构造函数
5.explicit用于禁止隐式类型转化,只能用于构造函数
6.默认构造函数,如果类内没有定义任何构造函数,则编译器会自动生成默认构造函数,并没有对数据成员初始化(随机数);
7.定义类必须显式定义默认构造函数;
    1) 编译器会自动生成默认构造函数没有对数据成员初始化(随机数)
    2) 显式定义了带参构造函数,则编译器不会生成默认构造函数;
    3) 如果未显式定义默认构造函数,则会造成创建默认子类对象失败
8.初始化列表:在构造函数形参列表右边: 数据成员1(参数1),数据成员2(参数2)
9.初始化列表的执行:在分配内存同时进行;
10.初始化列表主要用于初始化以下特殊数据:
    1) 常量数据成员必须在初始化列表初始化;
    2) 类中常引用数据成员必须在初始化列表初始化;
    3) 常量数据成员必须在初始化列表初始化;
    4) 类中常引用数据成员必须在初始化列表初始化;
11.构造的顺序:
    1) 先构造其它类的对象;按对象的声明顺序构造,先声明的先构造,后声明的后构造
    2) 再执行本类构造;先执行初始化列表,再执行本类构造函数内部
当类中有成员为指针时:构造函数,拷贝构造函数,析构函数,=操作符重载的写法
12.浅拷贝:只改变指针的指向,并没有为指针重新分配内存并拷贝值  
优点:节省内存,效率高    
缺点:不安全,会造成段错误  建议只在同一作用范围内使用
13.深拷贝:为指针重新分配内存并拷贝值,    优点:安全,      缺点:占用更多内存,效率低

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值