C++ Primer Plus 第十二章总结——类和动态内存分配
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++ Primer Plus 第十二章总结——类和动态内存分配,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1699字,纯文字阅读大概需要3分钟。
内容图文
1.类声明只是描述如何分配内存,因此静态类成员不能在其中初始化,况且静态类成员是单独存储的(例外情况是const整数类型或枚举型)。单独的初始化语句需指出类型和作用域运算符,但无需使用关键字static。
2.删除对象不能自动释放指针成员指向的动态内存,创建对象也不能为指针成员自动分派动态内存。
3.特殊成员函数有:默认构造函数、默认析构函数、复制构造函数、赋值运算符、地址运算符。
4.生成对象副本时使用复制构造函数,如函数的按值传递和返回、临时对象的生成。默认的复制构造函数逐个复制非静态成员的值,为浅复制。如果类中包含使用new初始化的指针成员,则必须创建指针指向的内存副本,进行深复制。
5.赋值运算符进行深复制的注意点:若给自身赋值,应当直接返回;目标对象可能引用了以前分配的数据,应当先进行空间释放;函数返回目标对象的引用。
6.空指针的表示:C++98使用0或(void*)0或NULL。C++11使用nullptr。delete和delete []都可用于空指针。
7.静态类成员函数不属于对象,且无法使用this指针,只能使用静态类数据成员。
8.get(char*, int)读取空行,早期的版本中读取的字符串首字符为'\0',而现在的版本将返回false。
9.delete不能与定位new运算符配合使用,使用定位new运算符创建的对象应显式调用析构函数,应与创建对象的顺序相反,晚创建的对象可能依赖于早创建的对象。
10.栈是先进后出的,队列是先进先出的。
11.嵌套的结构、类和枚举的作用域为整个类,若在公有部分声明,将可在外部使用作用域解析符来使用,若是私有部分,只能在类中使用。
12.只有构造函数能够使用初始化列表语法。const类成员和引用型类成员都必须使用这种语法,它们都是在声明时需要马上初始化的类型。初始化器格式为 memberName(value),用逗号分隔,位于参数列表的右括号之后,函数体左括号之前,前面带冒号。数据成员初始化的顺序与它们出现在类声明中的顺序相同。C++11的类内初始化与初始化列表等价,但初始化列表的值会覆盖类内初始化的值。
13.提供复制构造函数和赋值运算符,并声明为私有,可防止默认方法定义的滥用。
内容总结
以上是互联网集市为您收集整理的C++ Primer Plus 第十二章总结——类和动态内存分配全部内容,希望文章能够帮你解决C++ Primer Plus 第十二章总结——类和动态内存分配所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。