zoukankan      html  css  js  c++  java
  • C++学习-7

    1.面向过程是:数据与操作分离,数据容易被意外修改

    2.面向过程通过私有化的权限进行数据封装

    3.类型后辍:类名 operator “” _XXXX(int data)  增加后缀

    {

            Return {(unsigned int)data};大括号给结构体初始化

            传进来的参数要和原数据类型一致的参数类型一致

    }

    Operator””属于文件运算符(char,wchar_t,char16_t,char32_t,unsigned long long)

    文本后缀只能放在外部

    走法:为类赋值的时候,要的一种格式,然后内部通过operator “” _XXXX(int data)的返回值进行转换

    4.auto*p=nullptr;不可以

    auto xx=new auto(1)    xx为int*,对应类型的指针

    auto的推到是从左向右

    auto不适用于数组

    auto可以指向一个数组

    5.用lambda做递归的时候捕获列表要是&    [&](){}

           一般都是用函数包装器把lambda进行包装再调用,毕竟lambda是匿名函数

    6._func_取出函数名的宏

           对于函数重载了得,在调用的时候一定要明确调用哪一个

    7.对于一个函数名而言,add,*add,&add地址都是一样的(调用的时候都打括号)

    8.对函数指针decltype只是把函数头获取了,并没有获取函数实体,需要进行初始化

    因为函数代码被优化成了共享,尽量避免拷贝浪费一模一样的函数,代码块肯定是需要共享的,

    所以必须是引用或者指针类型才可以完整的实例化函数指针(就是浅拷贝的感觉)

    9.nullptr不是指针类型,自定义的一个类型表示空指针

    10.指针数组:

    int*p = new int[10];指向一维数组的指针

        int **pp = new int *[10];指向一维数组指针的二维指针(行指针)

        int(*px)[4] = (int(*)[4]) new int[20];二维数组,四个数组,每个里面5个

        int *(*py)[4] =(int *(*)[4]) new int *[20];

    11.每一个N级指针都可以开辟n-1级指针数组

    12.对多维数组与多重指针的深入总结:

    Int***ppp初始化好了之后,是从外往里走的

    13.共用体里面是不能放类,new(&str)string,调用string的构造函数,析构:str.~basic_string()

    Union内部如果有自定义的类有自己的构造函数,union使他原来的构造析构定义为删除的,必须自己实现

    14.原则上struct只要new的时候,都需要有构造函数,引用其他的类,基本构造函数就要重写

    15.<retio>分数 ratio<1,2> er 这个是一种类型    den分母,num分子

    16. 委托构造的好处:

             1.可以分工明确,让一个专门的构造函数去负责开辟内存,别的负责其他任务

             2.实现封装,可以把最总体的那个权限设为private,别的晓得作为借口

    17.函数模板

        1.模板是数值:

                 一般作为一个特定的值,传入到函数中,这个值总在变化,但是用的很多。

                 必须把书放进去

        2.模板是类型:

                 通用版,一般都是根据数据进行推断,

        要用函数模板初始化一个函数指针的时候,类型必须是确定的

        用模板赋值的时候,要么有值可以推断,要么你就<>特例化模板

     

    总结就是:判断模板加不加<>的依据就是,在使用的时候模板的类型一定要是可推断的,要么你就必须给了

    18. int(*px)[4] = (int(*)[4]) new int[20];    可以

        int(*px)[4] = new int[20];不行

    对于一片内存来说:类型的不一样就伴随着解析方式的不同,必要的时候需要强转

     

     

     

     

     

     

     

     

  • 相关阅读:
    作业九 主成分分析
    作业八 特征选择
    作业七 逻辑回归应用
    作业六 逻辑回归
    作业五 线性回归算法
    第十四次作业:手写数字识别-小数据集
    第十三次作业:深度学习-卷积
    第七次作业:7.逻辑回归实践
    第十二次作业:垃圾邮件分类2
    第十一次作业:朴素贝叶斯-垃圾邮件分类
  • 原文地址:https://www.cnblogs.com/tony-xu999/p/8574006.html
Copyright © 2011-2022 走看看