大三学生的自学C++之路3

C与C++的区别(面向过程与面向对象)
    C语言是面向过程的,把一个大的模块,分成若干个小的模块,更注重实现的逻辑 但不利于扩展和复用。
C++ 是面向对象的设计语言,更注重程序整体的设计。方便优化、管理 本质是在设计思想上
C++兼容C的特性 同时具有新的特性 继承、封装、多态。


面向对象的三大特性
    封装:将零散的数据和函数放在一个集合里方便管理和使用;
    继承
    多态

优点
    封装:将零散的数据和函数放在一个集合里方便管理和使用;
    复用性:公共的功能,过程的抽象 体现为重复使用的类和方法 要求我们针对某一类功能设计,而不是某一个功能设计
    扩展性:增加新的功能不会影响到已经设计好的功能;

输入输出
    cin/cout: 类对象
    printf()/scanf():函数 PS:scanf需要传地址例如:&a

命名空间:区分相同作用域下的相同名称的变量
    定义:namespace+名称
    使用:1.using namespace+名称    注意是否有变量冲突                        
  2.名称+::(:: 为作用域运算符 前面不加符号表示全局)

动态申请空间
     new:直接加空间类型 ;                                                                    
 delete 回收数组空间需要在变量前加 []
    malloc(4)//参数:空间大小 返回值void*                                                            
  初始化: memset(空间,0,空间大小)        释放:free()
    
malloc与new的区别:
1.new-delete 需要编译器支持;malloc-free需要头文件支持
2.malloc 申请空间大小。返回值是void* 需要强转;new  指定类型 返回指定类型的地址
3.new 可以指定初始化
4.new 申请对象空间 自动调用构造函数 delete 自动调用析构函数 malloc-free不会
 
    new 的使用: int* *p1= new int*;//指针
      int* *p2=new int*[5];//指针数组
      int(*(*p3))[5]=new (int(*)[5]);//数组指针
      int(*p4)[2]=new int[3][2];//二维数组
      AA *p5=new AA; //结构体

bool:(关键字)
    BOOL与bool的区别:1.BOOL //typedef int;bool是关键字;2.BOOL大小为4个字节;bool大小为一个字节

增强的for循环
    for(变量:要遍历的数组/容器){}

string
    需要头文件<string>初始化字符串:string str=“123”;str=(“123”);
    string拼接:直接相加即可;
    可通过下标直接访问字符串
    截取:strsub(index,length) 长度超限返回有效的字串;下标超限不允许;
    str.size();//返回长度;
    str.c_str();//返回char*
    可以用增强的for遍历

函数重载
    函数参数允许指定默认值 在函数声明时指出;指定默认值时 从右到左依次指定不能间断;
    函数重载:描述的是多个函数之间的关系;定义:在同一个作用域下,函数名相同,参数列表不同(参数的类型、数量);调用时自动匹配;注意避免二义性。

nullptr
    关键字:空指针
    通过强转指定空指针类型
    NULL与nullptr的区别:NULL是宏替换;nullptr是关键字。

引用:int &b=int a;
    引用定义即初始化
    一旦引用一块空间,就不能改变
    指针和引用的区别:1.引用定义就要初始化,指针可以不用初始化;2.引用一旦引用一块空间就不能引用其他空间,指针可以指向任何符合类型的空间;3.定义引用不需要开辟额外的空间,指针需要额外的空间存储。

函数传参
    值传递 不需要修改值
    地址传递 需要修改但需要额外的空间
    引用 可以修改且不需要额外的空间

类:数据和算法的集合
    对象:类的一个实例,真正存在于地址空间
    类与结构体的区别:1.类的属性方法默认是私有的,结构体是公有的;2.类的默认继承方式是私有的,结构体是公有的;
    访问修饰符:修饰类中成员的访问控制;一个类成员的访问范围;
        public:成员在类内类外都可以使用
        protected:在类内和子类中可以使用
        private:只能在类内使用
    setter/getter:设置和获取私有的属性值;


 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值