为了账号安全,请及时绑定邮箱和手机立即绑定

趣味 C++ 进阶

难度初级
时长 8小时 0分
学习人数
综合评分9.60
10人评价 查看评价
10.0 内容实用
8.8 简洁易懂
10.0 逻辑清晰
  • 求一个负数的二进制:

    首先,找到其正数二进制表达形式;

    然后,对最高位取1,获得原码;

    其次,除最高位(符号位)不变外,其余位取反,获得反码;

    最后,在反码的基础上加1,获得补码,也就是计算机对该负数的二进制表达。


    计算机用补码表示负数,可以同正数一样对其进行加法操作。

    查看全部
  • RAII(resource acquisition is initialization)


    class A

    {

             A();//创建资源

             void fun();//操作资源

           ~A();//释放资源

    };

    查看全部
    0 采集 收起 来源:动态内存管理

    2023-10-09

  • 浅拷贝

    深拷贝

    查看全部
  • 引用

    与指针类似,相当于指针plus版

    int &ra=a;

    类中对象用指针需要用"->"来操作

    A *pa=&a;

    pa->data=20;

    类中对象用引用时用"."来操作

    A &ra=a;

    ra.data=20;

    二者其他区别:

    引用必须有初始化值,指针可以赋值为nullptr

    引用不可以二次赋值,指针则可以

    查看全部
  • A.B则A为对象或者结构体; 点号(.):左边必须为实体

    A->B则A为指针,->是成员提取,A->B是提取A中的成员B,A只能是指向类、结构、联合的指针; 箭头(->):左边必须为指针;


    编联

    将一个指针的类型做成强转,然后调用 func 函数,func 函数会随着被强转的类型的变换而变换,这种函数的关联过程称为编联。

    静态编联

    在编译阶段就将函数实现和函数调用关联起来,因此静态联编也叫早绑定

    动态编联

    在程序运行时动态地进行,根据当时的情况来确定调用哪个同名函数

    查看全部
  • 子类和父类相互转换


    Staff * staff = coder; // 子类转父类隐式转换就可以
    Coder * coder = (Coder *)staff; // 父类转子类必须显式转换

    查看全部
  • 分部门的方式:多态公有继承

    子类中使用 public 修饰符,那么父类中的成员函数和成员变量将会保持父类的权限。这种是使用最广泛的继承方式,我们把它叫做公有继承。

    查看全部
  • 类的继承

    类,就像是对某一类事物的抽象模版,而在某些场景下,我们希望对抽象的内容进行扩增,或者说更加具体化。为了完成这种关系,便是继承。

    class Coder : public Staff
    {

    };

    查看全部
  • 不可重载的运算符:

    .
    .* ->*
    ::
    sizeof
    ?:
    #

    查看全部
    0 采集 收起 来源:运算符重载

    2023-10-07

  • 拷贝构造函数

    Staff(const staff  &staff);


    memcpy(mem,staff.mem,20);

    是C和C++使用的内存拷贝函数,函数原型为void *memcpy(void *destin, void *source, unsigned n);函数的功能是从源内存地址的起始位置开始拷贝若干个字节到目标内存地址中,即从源source中拷贝n个字节到目标destin中。

    查看全部
  • 声明函数指针

                                int(*funcP)(int a,int b)

    指针指向函数

                                  int(*funcP)(int a,int b)=func1;

    通过指针调用函数

                                 (*funcP)(5);

                                 int ret=(*funcP)(5);带返回值


    函数中传入函数

                                 int dowork(int a,int b,int (*callback)())

                                 {

                                          ......

                                      int ret=(*callback)();  

                                   }

    回调函数/钩子函数 :应用到函数中插入代码/多线程中

    查看全部
  • 指针声名

    指针运算

                                  地址  * > 内存

                                  地址   &<内存

                                  int*p=&a;  //变量A的地址赋值给指针P,P指向变量A

    指针和数组

                                  int*p=arr;(数组变量名)

                                  p+1(实际上是地址+类型大小)

                                  p[1]=>*(p+1)指针偏移操作

    指针和结构体

                                    struct S *p=&s;

                                      p->a=12;

                                      p->b=22;

    查看全部
  • 大端字节序(big endian):高位在前。在IO和网络传输方面采用方式,大端字节序又被称之为网络细节序

    小端字节序(little endian):低位在前。大部分机器采用小端字节序

    查看全部
  • 7

    0111

    1111原码

    1000反码

    1001补码

    查看全部
  • #include <stdio.h>
    #include <stdlib.h>
    int * func()
    {
        int * arr = (int *)malloc(4 * sizeof(int));
        return arr;
    }
    int main(int argc,char **argv)
    {
        int * p = func();
        free(p);
        return 0;
    }
    查看全部

举报

0/150
提交
取消
课程须知
你需要具备基础的 C++ 语法知识,在学习本课程之前,建议先学习《趣味 C++ 入门》,快速认识 C++,熟悉 C++ 基本语法,更加快速入手进阶课程!
老师告诉你能学到什么?
在本门课程中,你将学习到:计算机存储数据的原理、指针的进阶、面向对象编程、内存管理技巧等 C++ 高级语法。在课程的最后,将带领大家使用 C++ 编写一个五子棋游戏,通过实践,加深理解,巩固学习成果。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!