首页 > 编程语言 >C++学习笔记(大白话版)

C++学习笔记(大白话版)

时间:2024-09-03 19:24:42浏览次数:11  
标签:函数 大白话 int 笔记 动态分配 对象 C++ new MyClass

  函数重载:名字一样,参数不一样
  同一个小区,不同的家庭在小区中住不同的房子

  缺省参数:写函数的时候故意不把参数写完,但是只能不写左边的,右边的必须写
  如果在使用有缺省参数的函数时,给了实参值,那么就优先调用实参值
  如果没有给实参,就可以用默认参数了。
  函数定义写main下面,函数声明(缺省的)写main上面。有点脱了裤子放屁的感觉
  一个强迫症患者,从最右面开始写参数,写道左边的时候空几个不写。

  内联函数:就是在函数名字前加个inline,inline就是个飞雷神,可以节省函数跳转开销。一般写在.h文件中。
  飞雷神的意思就是,将函数的代码直接插入到调用它的地方,减少了函数调用的开销。这对于频繁调用的小函数尤其有益,可以显著提高程序的执行效率。

  哑元函数:函数参数列表中只有数据类型,没有参数名字,用来占位置。目前感觉没啥用,没用过这种函数。

  引用:起个小名,通过喊小名,就能使唤他,不用喊大名了。
  引用的时候必须初始化:起小名的时候一定要明确是给谁起小名,不能随便起小名
  引用和引用的目标数据类型必须要一致:明明是想给人起名,结果你拿起来就把这个小名给狗了,这是不合理的

    常引用:给他颁布一个伟大称号,一提到这个伟大称号,人们就能想到他。他可以改变,但是称号不能改变

动态分配的内存位于 堆 上
  
  动态分配内存:new和delete(这俩是操作符)
  分配单个内存:
                int *p = new int;//动态分配一个 int 类型的对象
                *p = 10;//使用该对象
                delete p;//释放该对象占用的内存
                p = NULL;//防止野指针
  
  动态分配数组:
                int* arr = new int[5];  // 动态分配一个包含 5 个 int 类型元素的数组
                for (int i = 0; i < 5; ++i) {
                    arr[i] = i;         // 使用数组元素
                }
                delete[] arr;           // 释放数组占用的内存

  动态分配对象:
                class MyClass {
                public:
                    MyClass() { std::cout << "Constructor called" << std::endl; }
                    ~MyClass() { std::cout << "Destructor called" << std::endl; }
                };
                MyClass* obj = new MyClass();  // 动态分配一个 MyClass 类型的对象
                delete obj;                    // 释放该对象占用的内存

  类的定义格式:class homename{public:  private:  protected:  };
  类的实例化对象://栈区对象:类名  对象名;
                 //堆区对象:类名 *对象名 = new 类名;
  单身狗可以用C++新建一个对象,但是记得将你的对象实例化后再使用。
  先实例化 homename m1,再使用
  四个可以:
  类内可以访问公有权限的成员:
  类内可以访问私有权限的成员:
  类内可以访问受保护的成员:
  类外可以访问公有权限的成员:m1.pub_func();
  两个不可以:
  类外不可以访问私有权限成员
  类外不可以访问受保护权限成员
 

标签:函数,大白话,int,笔记,动态分配,对象,C++,new,MyClass
From: https://blog.csdn.net/qq_59958425/article/details/141869345

相关文章

  • zdppy+vue3+onlyoffice文档管理系统实战 20240902 上课笔记 登录功能优化
    遗留问题1、登录以后跳转最近文档2、如果用户没有登录应该自动跳转登录页面3、如果用户的token校验失败,应该自动调整登录界面4、按回车键自动跳转登录页面登录以后跳转最近文档constrouter=useRouter()router.push("/")实际代码:constloginData=awaitapi.login......
  • FastAPI+Vue3零基础开发ERP系统项目实战课 20240831上课笔记 查询参数和分页实现
    回顾获取路径参数什么是路径参数?/user/{id}什么时候使用?需要传递参数怎么实现类型转换?声明参数的类型怎么捕获文件路径?{file_path:path}什么是查询参数查询字符串是键值对的集合,这些键值对位于URL的?之后,以&分隔。http://127.0.0.1:8000/items/?skip=0&limit=10......
  • prometheus学习笔记之集群内服务发现环境准备
    一、环境介绍主要演示prometheus在k8s集群中如何通过服务自动去发现k8s集群自有服务及其他服务发现场景,后续会演示集群外部署prometheus自动发现k8s服务并获取数据创建监控使用的namespaceskubectlcreatensmonitoring配置docker可以下载镜像[root@k8s-masterdeploy]......
  • SAID论文阅读笔记
    EnhancingSequentialRecommendationviaLLM-basedSemanticEmbeddingLearning论文阅读笔记Abstract现存的问题:​ 直接根据项目的文本特征从LLM中提取表征并将其输入顺序模型,并不能保证文本的语义信息能在这些表征中得到保留。此外,将项目序列中所有项目的文本描述串联成......
  • CM3学习笔记(X)中断输入及悬起行为
    ##中断输入及悬起行为要理解中断的输入和悬起行为,我们首先要理解这几个概念。>中断的状态可以参考FreeRTOS中的任务的状态(仅对比参考),请结合下面的内容配合CM3官方手册7.4的图进行理解。+中断请求:可以理解为我们所说的中断触发标志位+中断悬起状态:这是一个状态位。检测到中......
  • Java基础-学习笔记16
    16线程(基础)1.相关概念进程:进程是程序的一次执行过程,或是正在运行的一个程序。是多态过程,有它自身的产生、存在和消亡的过程。(比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存看见。当我们使用迅雷,又启动了一个进程,操作系统将为迅雷分配新的内存空间。进程一旦中......
  • Java基础 韩顺平老师的 泛型 的部分笔记
    553,泛型引入packagecom.hspedu.list_;importjava.util.*;importjava.util.concurrent.CompletionService;@SuppressWarnings({"all"})publicclassMap_{publicstaticvoidmain(String[]args){//使用传统的方法来解决ArrayListarrayLis......
  • 代码大模型Wavecoder学习笔记及代码实践
    目录学习笔记摘要(Abstract)介绍(Introduction)CodeSeaXDataset:四任务代码相关指令数据四任务信息增强指令生成1.原始代码收集(WaveCoder-main\WaveCoder-main\src\data\raw_code_collection)2.基于LLM的生成器-鉴别器框架实验设置结果代码生成任务评估:其他代码相关任......
  • 论文笔记——流量预测
    [!NOTE]Ctrl+Enter:表格添加一行Shift+Enter:表格内部换行,相当于末尾加\br论文总结GraphWaveNet2019年,IJCAI,GraphWaveNetforDeepSpatial-TemporalGraphModeling,交通流量预测优势及创新点基于实体之间的关系都是预定的(实际上不是),仅通过固定图结构捕获空间依......
  • LearnOpenGL学习笔记
    LearnOpenGL学习笔记入门认识OpenGL核心模式和立即渲染模式扩展状态机对象创建窗口视口渲染循环释放资源输入事件渲染你好,三角形基本概念顶点输入顶点着色器编译着色器片段着色器链接顶点属性顶点数组对象索引缓冲对象着色器GLSL数据类型输入与输出Uniform纹理基本知......