C++小结(1)

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也没害处)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏极客猴

Python中“is”和“==”的区别

相比 C/C++ 、Java 等强类型语言, Python 定义变量的方式就简单多了。我们只需要给变量起个变量名,而不需要给变量指定类型。

11120
来自专栏互联网杂技

Javascript获取数组中的最大值和最小值的方法汇总

比较数组中数值的大小是比较常见的操作,下面同本文给大家分享四种放哪广发获取数组中最大值和最小值,对此感兴趣的朋友一起学习吧 比较数组中数值的大小是比较常见的操作...

27350
来自专栏程序员的知识天地

20分钟搞定Python 函数基础知识

简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运行。Python中的函数在其他语言中也叫做过程或子例程,那么这些被包装起来的语...

14330
来自专栏Laoqi's Linux运维专列

文件类型+变量+数值字符串

22060
来自专栏Java帮帮-微信公众号-技术文章全总结

【选择题】Java基础测试二(15道)

【选择题】Java基础测试二(15道) 11.对于构造方法,下列叙述正确的是:(AC) A. 构造方法的方法名必须与类名相同; B. 构造方法必须用void...

434100
来自专栏测试开发架构之路

C++之类和对象的使用(二)

析构函数 析构函数的作用并不是删除对象,而是在撤销对象占用的内存之前完成一系列清理工作,使这部分内存可以被程序分配给新对象使用。对象生命周期结束,程序就自动执...

29070
来自专栏苦逼的码农

聊一聊让我蒙蔽一晚上的各种常量池

在写之前我们先来看几个问题,假如你对这些问题已经很懂了的话,那大可不用看这篇文章,如果不大懂的话,那么可以看看我的想法。

10140
来自专栏racaljk

正则表达式

\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“\n”匹配字符“n”。“\\n”匹配一个换行符。序列“\\...

11250
来自专栏破晓之歌

如何创建对象以及jQuery中创建对象的方式(推荐)

在实际使用当中,字面量创建对象虽然很有用,但是它并不能满足我们的所有需求,我们希望能够能够和其他后台语言一样创建一个类,然后声明类的实例就能够多次使用,而不用每...

15220
来自专栏塔奇克马敲代码

第 19 章 特殊工具与技术

20750

扫码关注云+社区

领取腾讯云代金券