• 笔试强训第九天


     选择

    c6b64c81d85b4e4e8cc80161743a3555.png

     A

     1ea21d872bee41baabfe9a2ee28c9739.png

     A

    申请了5个对象的空间,所以构造调用5次,但只析构了一次,应该用delete[] pclassa

    申请空间malloc/calloc/realloc--->free

    new--->delete

    new[]->delete[]

     19e88ac805ac43e183d1d2a227490055.png

    B

     6f5a5f861edf4b1eabfc93683a69d3e8.png

    D

    静态成员变量:所有对象所共有的,并不属于具体的某个对象。

    在类中声明(带static),类外面定义(不带static)。

    静态成员变量一定不能在初始化列表初始化。

    在类外访问静态成员变量时:

    对象.静态成员  或者 类名::静态成员

    2eb88822ba434bca891bd1a5adb4f354.png

     A

     7b45f781b1c44ebcb555c13e07d2c2fc.png

     C

    一元运算符:该操作符只需要一个参数比如,++ --

    前置++         A& operator++()

    后置++         A operator++(int)

    616db5c5c1734258a3cc2c981c44550c.png

    B

    obj1 obj2 调用构造

    obj3调用拷贝构造

    return 0 函数结束->释放对象->调用析构

    54f2c32d368247c096f06d7e72e93d33.png

    D

    A const修饰的静态成员变量可以在类内初始化。

    1. class A
    2. {
    3. private:
    4. const static int _b=10;
    5. }

    5b331b8e38624a15bd325e83be8bfaba.png

     B

    类的指针不会调用析构函数。类的成员会调用析构函数。

    假设A类的构造函数是私有的,在类外,A*pa=new A;

    new原理:1、申请空间 2、调用构造函数进行初始化(×) 即不能在类外面创建对象

    delete原理:1、调用函数的析构函数(×)。2、释放空间。

    需要给A的共有成员函数中添加一个函数

    void Release(A*&p)

    {        delete p;

    }

    b40e1711e32a4959a5a33ea247de67a9.png

    B

    template

    template

    template

    template

    编程

    走方格的方案数

    走方格的方案数_牛客题霸_牛客网

     思路:动态规划,当前位置只能由当前行的前一个位置或者上一行的同列位置过来

    1. #include
    2. #include
    3. using namespace std;
    4. int main()
    5. {
    6. //m行 n列
    7. int n,m;
    8. cin>>n>>m;
    9. vectorint>>dp(m+1,vector<int>(n+1,0));
    10. for(int i=0;i1;i++) dp[i][0]=1;
    11. for(int j=0;j1;j++) dp[0][j]=1;
    12. for(int i=1;i1;i++)
    13. {
    14. for(int j=1;j1;j++)
    15. {
    16. dp[i][j]=dp[i-1][j]+dp[i][j-1];
    17. }
    18. }
    19. cout<
    20. return 0;
    21. }

    另类加法

    84de11fd31a14de3a9d7b14355cfba04.png

    1. class UnusualAdd {
    2. public:
    3. //以二进制1+3为例
    4. //0000 0001
    5. //0000 0011
    6. //不考虑进位时,二者相加后的数应该为 0000 0010
    7. //进位的值应该是 0000 0001<<1
    8. //然后二者再相加 0000 0010 0000 0010
    9. //不考虑进位时 应该为 0000 0000
    10. //进位的值应该是 0000 0010<<1
    11. //在加就是+0了
    12. int addAB(int A, int B)
    13. {
    14. if(A==0) return B;
    15. if(B==0) return A;
    16. int a=A^B;//这里计算的是不考虑进位时的值
    17. int b=(A&B)<<1;//这里计算的是进位的值
    18. return addAB(a,b);
    19. }
    20. };
  • 相关阅读:
    LeetCode 2525. 根据规则将箱子分类【模拟】1301
    ES6-扩展运算符“...“
    DSI及DPHY的学习
    二十、设计模式之迭代器模式
    程序员如果都懂SpringWebFlux框架的话,也不用天天CRUD了
    11 - Debian如何限制sudo权限
    飞机大战Java版完整版
    Nuxt服务端请求及获取Cookie
    后端/DFT/ATPG/PCB/SignOff设计常用工具/操作/流程及一些文件类型
    【实用技巧】Unity的Text组件实用技巧
  • 原文地址:https://blog.csdn.net/qq_68741368/article/details/127428959