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

C/C++日记2

1.C/C++中传参方式有哪些?有什么区别?

首先有三种传参方式,分别是:值传递——>指针传递——>引用传递

1)值传递

a. 形参会将实参复制到一块新的地址空间中,就相当于房间1和房间2,里面变量值相等。在函数内部操作形参,就是在房间2里面操作变量,你如何操作房间2中的变量,房间1里的始终不会发生任何改变。

b. 自然而然可以看到房间2和房间1地址不一样,将原本房间1的变量值复制到房间2中涉及到拷贝

2)指针传递

a. 指针传递不再是复制实参的值了,而是复制实参的地址号作为形参,将实参的地址作为一个变量保存到一个新的空间。

b.需不需要拷贝呢?需要;需不需要另外开辟空间呢?需要来存放实参的地址;那么对形参操作会对实参有影响吗?当然了,地址一样,操作的不还是房间1里的值嘛

3)引用传递

a. 引用传递就相当于形参和实参链接成为一体了,不经历值拷贝和地址拷贝,不用开辟新的地址空间。

b.链接上成为一体了,自然而然操作形参就是操作实参。

2.全局变量在头文件定义会出现什么问题?

1. 首先说,全局变量可以在头文件中声明,但不应该定义,也就是说不应该初始化值。

2,当以个全局变量在头文件中定义后,多个源文件引用该头文件并使用此全局变量,出现一个全局变量被定义多次问题,链接时产生重复定义的错误

3.应该怎样做?头文件.h文件使用extern 只进行声明,源文件中进行定义。

3.面向对象编程的特性或者说C++的三大特性

1.封装

首先说封装、或者说面向对象编程主要优势是为了复用和解耦。

封装是什么?将一些对象的共有特征(属性、成员属性)和共有行为或者是抽象行为(方法,也叫成员函数)装在一个类中。其中这些属性和方法可以共有(就是共享的),也可以私有(就是我独享的)。

2.继承

封装成了一个类比如叫做人,那么创建一个他的子类叫做男人。难道男人类和人类之间共有的属性和方法我还要在男人类里再定义一遍吗?当然不用,我们可以让男人类继承人类,这样人类中所有共享的属性和方法我们男人类也就轻而易举得到了。

3.多态

a.重写:前面说了,封装除了会将共有的属性和方法封装进去外,一些抽象的方法(还没确定它的具体行为)也封装进去了。那么我们男人类也继承了这个抽象方法,但是现在我在男人类中,我想要实现他的具体方法,那么这时候就要对人类中的这个抽象方法进行重写。其实就是子类重新实现父类中的虚函数。在C++中,使用virtul修饰的函数叫做虚函数,其实这个虚函数和pyhon中的抽象方法一个意思。

b.重载:重载也算是多态,他的要求是:在同一作用域下,比例一个类中,一个函数和另一个函数函数名相同,参数列表一定不同,返回值类型不做要求,那么这个函数就是另一个函数的重载。

c.其实,重写也是有条件的,必须是子类对父类的重写,不能颠倒。被重写的这个父类中的函数必须是虚函数,且必须时公有继承。子类中重写的函数必须和父类中的虚函数函数名、参数列表和返回值类型必须一样。

4.C++中的多态是什么?怎么实现的?

C++多态:一句话来讲就是同一操作但是作用于不同对象会产生不同的效果。

C++多态分为两种:静态多态(编译期多态)和动态多态(运行时多态)

1.静态多态(编译器多态):程序编译期间就确定调用哪个函数,核心依赖静态绑定

主要实现方式:重载、运算符重载、模板

前提:同一个作用域

2.动态多态(运行时多态)

主要实现方式:子类重写父类虚函数

http://www.jsqmd.com/news/1345236/

相关文章:

  • 深度学习分类任务核心:Softmax函数原理、PyTorch实现与实战指南
  • 2026年江苏电磁流量计正规OEM贴牌加工厂家汇总说明 - 奔跑123
  • UE4/UE5全局着色器插件开发:从HLSL到可复用渲染模块
  • 泗县装饰装修干货:本地家装挑选实用指南 - 国麟测评
  • Unity Shader入门:从零实现Lambert漫反射与逐顶点/逐像素光照对比
  • 2026年国内收费透明的泰州注销代办公司靠谱选择参考**汇总 - 米諾
  • 2026年河间整装优选指南:雅丝奈家居定制 - 热点品牌推荐
  • 太原团队会议住宿预订哪家酒店更合适?团队一站式酒店对比 - 小橘甄选
  • 【铜川市】2026CPPM采购经理报考指南|正规机构甄选产业适配全攻略 - 中采供培
  • ZBrush细节优化与拓扑重构实战技巧
  • 2026年 非标电气自动化设备厂家/控制箱源头工厂:安装维修保养一体化服务实力解析 - 优企名品
  • 使用github搭建图床
  • 邯郸防火包厂家哪家好、橡塑板厂家推荐怎么选不踩坑|2026避坑指南 - mobible
  • 福州合同纠纷进入精细博弈期,乐星星律师资质齐全、诚信可靠口碑好,如何破解合同纠纷胜败局? - 专业优选推荐榜
  • C++ vector迭代器失效原理与解决方案:从STL源码到工程实践
  • 26.4美元/小时:人形机器人替代人工的“盈亏线”,被宇树率先跨过了
  • ZooKeeper网络分区问题解析与解决方案
  • 宿州泗县家装实地测评:深耕十余年本土品牌泗县好先生装饰深度解析 - 国麟测评
  • 深入解析MyBatis三级缓存:从原理到实战,规避性能陷阱与数据一致性问题
  • 大连广鹿岛海岛民宿发展分析:沉浸式旅居成新趋势 - 国麟测评
  • 机器狗训练平台中六自由度运动模拟系统的关键技术研究
  • #2026吉安市板凳伯伯盖浇饭实力企业加盟怎么选板凳伯伯现炒浇头面 - 热点品牌推荐
  • AbMole 小讲堂丨RMC-7977:RAS抑制剂,在肿瘤信号网络与耐药机制研究中的应用
  • Claude Code子智能体实战:构建可自我迭代的AI编程工作流
  • 西安折扣卡系统源码实战指南:从开发到部署全流程
  • 前端无剪辑拆卡实战:用代码还原设计稿,告别手动切图
  • 每日热门skill-10万行PPT只需一句话?这个被腾讯官方的Skill,正在重新定义AI办公的天花板
  • 选机构不踩坑:广州外国人来华工作许可证公司口碑好本地测评与对比全攻略 - 米諾
  • 北京大兴网站建设公司哪家好?揭秘那些不藏私心的选企指南与避坑真相
  • 大模型工业应用实战:三层反幻觉防御与RAG技术解析