首页 > 编程语言 >c++总结

c++总结

时间:2023-11-21 16:02:50浏览次数:32  
标签:总结 函数 成员 c++ 访问 析构 指针 构造函数

const在不同位置时的不同意义指针类型前:

声明一个指向常量的指针,程序中不能通过指针来改变它所指向的值,但指针本身的值可以改变,即指针可以指向其他数据;

"*"号和指针名之间,声明一个指针常量(常指针),指针本身的值不可改变,即不能指向其他数据,但指向的数据的值可以改变 两个地方都加,声明指向常量的指针常量,指针本身的值不可改变,指向的数据也不能通过指针改变

函数指针使用函数指针之前,必须先赋值,使它指向一个函数入口地址,赋值语法格式为:函数指针名 = 函数名,其中函数名代表的函数必须是一个已经定义过的,和函数指针具有相同返回类型的函数,

指针调用函数格式:(*指针变量)(实参列表) 访问权限public:可被任意实体访问 protected:只允许本类及子类的成员函数访问 private:只允许本类的成员函数访问

构造函数创建对象时,自动调用构造函数,不能在程序中直接调用,可有任意类型参数,但不能有返回类型; 构造函数作用:为对象分配空间、为数据成员赋初值、请求其他资源 构造函数工作:初始化虚函数表、建立基类对象、建立非静态数据成员对象、安置虚基类对象信息、执行构造函数体中的代码

若一个类中没有定义构造函数,编译器会自动生成不带参数的默认构造函数,格式为:<类名>::<默认构造函数名>(){}析构函数析构函数作用:清除对象、释放内存 析构函数工作:执行析构函数中的代码、将对象占据的存储空间归还系统、做公共及用户要求的善后工作 析构函数无参数和返回值,一个类中只能定义一个析构函数,故不能重载,格式为:~<类名>();内存布局全局数据区:存放全局变量、静态数据、常量 代码区:存放类成员函数、其他函数代码 栈区:存放局部变量、函数参数、返回数据、返回地址 堆区:自由存储区 运算符重载重载形式重载为类的成员函数,参数个数比原来的运算数少一个<函数类型> operator <运算符> (<形参列表>){<函数体>;}重载为类的友元函数,参数个数与原运算数个数一样多 friend <函数类型> operator <运算符> (<形参列表>){<函数体>;}函数重载:返回值类型可以相同可以不同,但形参列表一定不同

静态数据成员初始化格式:<类型><类名>::<静态数据成员>=<值> 引用格式:<类名>::<静态数据成员>; 继承方式私有继承private:父类的公有成员和保护成员作为子类的的私有成员,且不能被子类的派生类访问 公有继承public:父类的公有成员和保护成员作为子类的成员时,仍保持原有状态,父类私有成员仍为私有 保护继承protected:父类的公有成员和保护成员成为子类的保护成员,且只能被他的派生类成员函数或友元访问,父类私有成员仍为私有

派生类构造函数调用顺序:调用基类的构造函数,调用顺序按继承时说明的顺序 调用子对象类的构造函数,调用顺序按在类中说明的顺序 派生类构造函数体中内容 函数模版template < 模板形参表 >template 返回值类型 函数名(形式参数列表){ 函数体语句}例:template void swap( T& v1, T& v2){ T temp; temp = v1; v1 = v2; v2 = temp;}虚函数虚函数必须是类的成员函数,不能是友元,但可以是另一个类的友元,不能为全局函数,也不能为静态函数,析构函数可以为虚函数,但构造函数不能为虚函数

变量初始化局部变量:定义时,系统不会进行初始化 全局变量:定义时,系统自动初始化, 友元函数在类中定义过,但不是成员函数,定义在类外部,但有权访问类中成员 this指针只有成员函数才有this指针,友元函数没有this指针 静态成员函数与普通成员函数区别:静态成员函数没有this指针,只能访问静态成员(包括静态成员变量和静态成员函数) 普通成员函数有this指针,可以访问类中任意成员,而静态成员函数无this指针

标签:总结,函数,成员,c++,访问,析构,指针,构造函数
From: https://blog.51cto.com/u_16367576/8504501

相关文章

  • AcWing 算法基础课week 1 总结(万字长文)
    AcWing算法基础课week1总结总结点1:快速排序(分治思想)题1:从小到大排序主体思路:定义一个数x属于数组s,利用双指针,将数组分为大于等于x和小于等于x的两部分,然后递归处理。(具体步骤如下)1.如上图所示,我们定义一个数组s用来储存n个数据,然后定义两个指针ij,分别指向数组的左右两......
  • 每日总结-23.22.21
    <!doctypehtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1"><metahttp-equiv="X-UA-Compatible......
  • 医院影像归档和通信系统源码(C++pacs系统源码)
    PACS系统,意为影像归档和通信系统。它是应用在医院影像科室的系统,主要的任务就是把日常产生的各种医学影像(包括核磁,CT,超声,各种X光机,各种红外仪、显微仪等设备产生的图像)通过各种接口(模拟,DICOM,网络)以数字化的方式海量保存起来,当需要的时候在一定的授权下能够很快的调回使用,同时增加一......
  • C++ LibCurl实现Web隐藏目录扫描
    LibCurl是一个开源的免费的多协议数据传输开源库,该框架具备跨平台性,开源免费,并提供了包括HTTP、FTP、SMTP、POP3等协议的功能,使用libcurl可以方便地进行网络数据传输操作,如发送HTTP请求、下载文件、发送电子邮件等。它被广泛应用于各种网络应用开发中,特别是涉及到数据传输的场景。......
  • 开发中遇到的问题总结---java中list和Collection之间的转换
    问题描述:将map中的values转换为list错误做法:强制转换(会报错)List<String>originalContractCodeList=(List<String)kpmcKpidMap.values();正确做法:List<String>originalContractCodeList=newArrayList<>(kpmcKpidMap.values());......
  • 归并排序知识总结
    归并排序思维导图:知识点:如果原序列中两个数的值是相同的,它们在排完序后,它们的位置不发生变化,那么这个排序是稳定的。快速排序是不稳定的,归并排序是稳定的。快排变成稳定的=>使快排排序数组中的每个数都不同,将ai变成<ai,i>这个二元组,将ai的下标也放进来,使用双关键字排序。快速......
  • 每日总结
    今日收获写了软件设计作业,感觉发挥还不错欸~~和友友们一起弄了erp作业~~明天预计好好上课,好好写作业~~顺利通过每一节课;继续和友友们冲刺一下子~~......
  • 每日总结
    今天启动hbase的时候发现Hmaster过一段时间会自动消失,导致hbase启动失败,经过上网查询,得知虚拟机的时间不同步防火墙没有关闭hdfs的接口不对hbase中的hbase-site.xml文件中的属性值(hbase.rootdir)主机端口不一致 最后经过排查发现,hbase的配置文件hbase-site.xml和hdfs-core......
  • 数据库复习总结(并发控制一)
    目录前言3种并发异常丢失修改(写写异常)不可重复读(包括幻读情况读写异常)脏读为处理并发异常出现的机制--加锁加锁规范--封锁协议一级封锁协议(解决修改丢失)举例二级封锁协议(解决修改丢失,脏读)举例三级封锁协议(解决修改丢失,脏读,不可重复读)举例加锁产生问题活锁死锁解决办法针对活锁针......
  • 2023-2024-1 20232407 《网络》 第二周学习总结
    教材学习内容总结教材学习中的问题和解决过程问题1:密码学基础中的对称加密和非对称加密有什么区别?它们分别适用于什么场景?解决方案:询问GPT问题2:什么是数字签名?它是如何保证消息的完整性和真实性的?解决方案:询问GPT基于AI的学习思考在密码学基础中,对称加密和非对称加密是......