C++小结(1)

简介: 1. overload 仅仅返回值类型不同的函数不能被重载. 2. 所谓私有,是指该成员只能被类本身的方法访问----即使是这个类的对象也不能直接访问. 3. 类的对象所占用的空间是其成员变量所用内存的总和(可sizeof求证),对象指针指向其首个成员变量地址.

 

1. overload 仅仅返回值类型不同的函数不能被重载.

2. 所谓私有,是指该成员只能被类本身的方法访问----即使是这个类的对象也不能直接访问.

3. 类的对象所占用的空间是其成员变量所用内存的总和(可sizeof求证),对象指针指向其首个成员变量地址.对象的函数不占用对象的内存空间(即使函数中有局部变量)

4. const关键字的主要作用是利用编译程序进行排错.和限制对成员的改变.
表现在以下方面:

(1)const成员函数:const位于形参括号之后,分号之前.该函数不能修改成员变量.
(2)const类:对一个类说明使用了const,实际上是说明了一个const型的this指针,该指针只能调用const成员函数.
(3)const成员变量:==常量
(4)const指针.
int * const pi=0;//指针pi不能再指向其他对象(不允许pi=&x)
const int * pi=0;//指针不能改变所指向地址中的内容(不允许*pi=x);
const int * const pi=0;//指向常量的常量指针.

5. 一定要对所有的指针进行初始化,初始化可以是有效的变量地址,也可以是0(空指针).
   一定要对所有引用的说明进行初始化,引用不能为空,也不能被重新赋值.
必须牢记:引用不等于指针,引用是目标的"别名".对引用的操作(包括赋值和&)都是对目标进行的.
*一个没有初始化的指针被称为"失控指针",是非常危险的.

6. 指针用于:
A:处理自由存储区中的数据;
B:访问类的成员数据和成员函数;
C:通过引用传递的方式给函数传递对象或变量.


7. 关键字new分配堆中的内存。如果分配成功返回一个地址值,否则返回NULL(空指针).因此,每次使用new时应检查其返回值是否有效.
当不再需要一块内存空间时,必须对它的指针使用delete,以释放目标内存空间.
*说明了指针的函数结束时,指针变量本身的作用域也随之结束,但指针所指向的内存空间不会自动释放,所以必须在函数结束前,对指针使用delete释放它所指向的内存空间.否则导致"内存丢失".
*delete不会删除指针本身,所以被delete的指针可以再次被赋值.
*对一个被delete的指针再次使用delete可能导致程序崩溃.解决办法是delete一个指针后.立即给它赋值0,而对一个空指针使用delete是安全的.
*没有delete一个指针前,对一个已经赋值了的指针重新赋值会导致前一个地址空间丢失.
*良好的习惯是new,delete成对出现.


8. 对一个指向对象的指针使用new运算符分配空间时,会调用对象类的构造函数.与此类似,使用delete删除一个对象指针时,会调用一个析构函数.


9. 类的成员变量如果是指针变量。其初始化可在构造函数或其他方法中进行,而清除指针所指向的内存的工作在析构函数中进行.
在析构函数中delete指针成员变量,不需要再把指针赋值为0,因为一旦对象消失,作为它的成员的指针也不能再被访问(当然,赋值0也没害处)

img_e00999465d1c2c1b02df587a3ec9c13d.jpg
微信公众号: 猿人谷
如果您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
如果您希望与我交流互动,欢迎关注微信公众号
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

目录
相关文章
|
API
使用的orTools的约束规划与线性规划解决相同问题的代码api差异对比
使用的orTools的约束规划与线性规划解决相同问题的代码api差异对比
115 0
|
存储 druid Java
Dao层设计思想、JdbcUtils类、数据库连接池技术
Dao层设计思想、JdbcUtils类、数据库连接池技术
153 0
Dao层设计思想、JdbcUtils类、数据库连接池技术
|
消息中间件 存储 Java
ActiveMQ系列:ActiveMQ标准API结合JavaSE实战
订阅者或接收者通过MessageConsumer的setMessageListener(MessageListener listener)注册一个消息监听器,当消息到达之后,系统自动调用监听器MessageListener的onMessage(Message message)方法。
122 0
ActiveMQ系列:ActiveMQ标准API结合JavaSE实战
|
数据可视化 前端开发 持续交付
开工第一天,阿里工程师如何解锁晨会新姿势?
俗话说,一年之计在于春、一日之计在于晨。年后开工的第一天,我们来解锁晨会的新姿势:“站会”。站会到底有没有必要开?如何才能高效地开好站会?下面我们结合阿里部分技术团队的实践经验,一起来看看。
13434 0
开工第一天,阿里工程师如何解锁晨会新姿势?
|
存储 对象存储
阿里云 OSS
原文:https://help.aliyun.com/  阿里云 OSS   阿里云 OSS(Object Storage Service)为您提供基于网络的数据存取服务。使用 OSS,您可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种结构化或非结构化数据文件。
9626 0
|
19天前
|
供应链 监控 安全
对话|企业如何构建更完善的容器供应链安全防护体系
阿里云与企业共筑容器供应链安全
171341 14
|
21天前
|
供应链 监控 安全
对话|企业如何构建更完善的容器供应链安全防护体系
随着云计算和DevOps的兴起,容器技术和自动化在软件开发中扮演着愈发重要的角色,但也带来了新的安全挑战。阿里云针对这些挑战,组织了一场关于云上安全的深度访谈,邀请了内部专家穆寰、匡大虎和黄竹刚,深入探讨了容器安全与软件供应链安全的关系,分析了当前的安全隐患及应对策略,并介绍了阿里云提供的安全解决方案,包括容器镜像服务ACR、容器服务ACK、网格服务ASM等,旨在帮助企业构建涵盖整个软件开发生命周期的安全防护体系。通过加强基础设施安全性、技术创新以及倡导协同安全理念,阿里云致力于与客户共同建设更加安全可靠的软件供应链环境。
150298 32
|
29天前
|
弹性计算 人工智能 安全
对话 | ECS如何构筑企业上云的第一道安全防线
随着中小企业加速上云,数据泄露、网络攻击等安全威胁日益严重。阿里云推出深度访谈栏目,汇聚产品技术专家,探讨云上安全问题及应对策略。首期节目聚焦ECS安全性,提出三道防线:数据安全、网络安全和身份认证与权限管理,确保用户在云端的数据主权和业务稳定。此外,阿里云还推出了“ECS 99套餐”,以高性价比提供全面的安全保障,帮助中小企业安全上云。
201977 15
对话 | ECS如何构筑企业上云的第一道安全防线
|
7天前
|
机器学习/深度学习 自然语言处理 PyTorch
深入剖析Transformer架构中的多头注意力机制
多头注意力机制(Multi-Head Attention)是Transformer模型中的核心组件,通过并行运行多个独立的注意力机制,捕捉输入序列中不同子空间的语义关联。每个“头”独立处理Query、Key和Value矩阵,经过缩放点积注意力运算后,所有头的输出被拼接并通过线性层融合,最终生成更全面的表示。多头注意力不仅增强了模型对复杂依赖关系的理解,还在自然语言处理任务如机器翻译和阅读理解中表现出色。通过多头自注意力机制,模型在同一序列内部进行多角度的注意力计算,进一步提升了表达能力和泛化性能。