当前位置: 首页 > news >正文

C++学习笔记

一、开题

        ①:#define dPS struct s *

        ②:typedef struct s * tPS;

        这两种情况都是要定义dPS和tPS作为一个指向结构s的指针,请问哪种方法更好?

        答:第二种方法更好,因为第一种方法是在编译器进行预处理将所有dPS直接替换为struct s *这样做会有风险,例如我想要定义三个指向结构体s的指针变量,如dPS a, b, c;这样写,在预处理完成后,我将得到struct s *a, b, c;这是一个指向结构体s的指针变量和两个结构体,与我原来的预期不相符,而第二种方式,是帮助我给struct s *取了一个别名,可以避免上述情况的发生。

----------------------------------------------------------------------------------        

typedef、define

----------------------------------------------------------------------------------     

二、温故知新

        1、static

            在C++中,使用static关键字修饰类的成员变量,叫做静态的成员变量

                特点:该类的所有成员都可以使用

                要求:需要在类的外部进行初始化

            在C++中,使用static关键字修饰类的成员函数,叫做静态的成员函数

                特点:只能访问静态的成员变量,并且没有this指针

            总结:

                【1】静态成员变量是所有对象的公有属性

                【2】一定要在类的外部进行初始化

                【3】在初始化的时候不需要加static关键字,static关键字只出现在声明中

                【4】静态成员函数只可以访问静态成员

            静态的成员函数与普通的成员函数的区别:

                【1】静态成员函数没有this指针,只能访问静态成员(静态成员变量和静态成员函数)

                【2】普通成员函数有this指针,可以访问类中的任意成员

        2、const

            总结:

                【1】如果const关键字修饰的是成员函数,则称为常函数,常函数不会修改成员变量的值。

                【2】如果const关键字修饰的是对象,则称为常对象,常对象只能访问常函数。 

        3、友元函数和友元类

                关键字:friend

                1)友元函数

                    类以外的函数如果想要访问类内部的成员变量,我们可以在函数声明的时候加入关键字:friend

                    注意:友元函数是定义在类外部的普通函数,但是友元函数需要在类内进行声明。   

                2)友元类

               

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 自动化回复信息工具的开发分享!
  • 报错:pytest: error: argument -m: expected one argument (via addopts config)
  • 100 个网络基础知识普及,看完成半个网络高手!
  • 程序的控制结构——if-else语句(双分支结构)【互三互三】
  • 语言模型演进:从NLP到LLM的跨越之旅
  • 【C++航海王:追寻罗杰的编程之路】一篇文章带你认识哈希
  • 面向对象进阶基础练习
  • 逆序对——树状数组
  • 爬虫-浏览器自动化
  • OceanBase 配置项系统变量实现及应用详解(1):配置项的定义及使用方法
  • 超级好用的java http请求工具
  • shift 命令学习
  • 数据库客户端自定义驱动和数据源:以 HighGo-瀚高为例子
  • 如何分析软件测试中发现的Bug!
  • 快速掌握 ==== js 正则表达式
  • ES6 ...操作符
  • Javascript Math对象和Date对象常用方法详解
  • javascript 哈希表
  • Linux Process Manage
  • Python语法速览与机器学习开发环境搭建
  • react-native 安卓真机环境搭建
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • Spring框架之我见(三)——IOC、AOP
  • SQLServer之创建数据库快照
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 如何设计一个比特币钱包服务
  • 无服务器化是企业 IT 架构的未来吗?
  • 用element的upload组件实现多图片上传和压缩
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • $.each()与$(selector).each()
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转载)hibernate缓存
  • (状压dp)uva 10817 Headmaster's Headache
  • .bat文件调用java类的main方法
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • @property @synthesize @dynamic 及相关属性作用探究
  • @selector(..)警告提示
  • []新浪博客如何插入代码(其他博客应该也可以)
  • [240621] Anthropic 发布了 Claude 3.5 Sonnet AI 助手 | Socket.IO 拒绝服务漏洞
  • [ASP.NET MVC]Ajax与CustomErrors的尴尬
  • [BZOJ] 1001: [BeiJing2006]狼抓兔子
  • [C#学习笔记]Newtonsoft.Json
  • [FreeRTOS 基础知识] 栈
  • [git]git命令如何取消先前的配置
  • [HXPCTF 2021]includer‘s revenge
  • [ITIL学习笔记]之事件管理(2)
  • [MTK]安卓8 ADB执行ota升级
  • [NCTF 2022] web题解
  • [nextjs]推荐几个很好看的模板网站