C++编程要点总结
需积分: 9 120 浏览量
更新于2024-09-08
收藏 1.36MB PPTX 举报
"高质量C++编程"
C++是一种高效、灵活的编程语言,但是在编程过程中需要注意许多细节,以避免常见的错误和问题。以下是C++编程中需要注意的几个点:
1. 常成员变量的使用
在C++中,常成员变量只能通过构造函数的初始化表对常成员变量进行初始化。常成员变量可以像普通成员变量一样被访问,但是其值不能被修改。对于类来说常成员变量的值是可变的,因为可以创建不同的对象。思考:怎样创建整个类中的恒定的常量呢?
2. 函数设计的注意事项
在函数设计中,需要注意参数的传递方式。如果参数以值传递方式传递对象,则宜改用“const&”。返回值以引用或者指针方式传递时不能返回局部对象的引用或指针。如果函数返回值是一个对象,要考虑return语句的效率。
3. 内存管理的注意事项
内存管理是C++编程中一个非常重要的方面。指针与数组的对比是非常重要的。数组的地址与容量在生命期内保持不变,只有内容可以改变。指针可以随时改变所指的内存块。不能对数组名进行直接的复制与比较。sizeof使用的差别也需要注意。
内存管理的另一个重要方面是指针参数传递内存。例如,void GetMemory(char* p, int num) { p = (char*)malloc(sizeof(char) * num); },在这种情况下,p的值不会被改变。
4. new/delete与malloc/free的注意事项
在C++中,new/delete和malloc/free是两个不同的内存管理机制。new/delete是C++的operator,malloc/free是C的标准库函数。在使用这两个机制时需要注意一些重要的细节:内存被释放了,并不表示指针会自动消亡或者指向NULL;指针消亡了,并不表示它所指向的内存会被自动释放;非内部数据类型申请释放内存用new/delete;申请空间之后记得判断是否申请成功,然后再使用;delete释放对象数组时不要忘记delete后面加[]。
5. C++函数的高级特性
C++函数的高级特性包括函数的重载与覆盖、类的构造函数、析构函数与赋值函数等。构造函数的注意事项包括:派生类必须在其初始化表里调用基类的构造函数;类的const常量只能在初始化列表里被初始化;缺省的拷贝构造函数和赋值函数均以“位拷贝”的方式存在,若类中含有指针变量,那么这两个函数将隐含了错误;拷贝构造函数在对象创建时调用,而赋值构造函数只能被已经存在的对象调用。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2014-12-14 上传
2024-12-28 上传
2024-12-28 上传
2024-12-28 上传
两级式单相光伏并网仿真(注意版本matlab 2021a) 前级采用DC-DC变电路,通过MPPT控制DC-DC电路的pwm波来实现最大功率跟踪,mppt采用扰动观察法,后级采用桥式逆变,用spwm波
2024-12-28 上传
2024-12-28 上传
weixin_42792296
- 粉丝: 0
- 资源: 1
最新资源
- browser-power:可以在浏览器中运行的客户端javascript展示
- 用于计算方位角、高程、儒略日期、GMST 和 LMST 的天文软件。:该软件将 RA 和 DEC 转换为方位角和高程,以及许多其他内容-matlab开发
- Curso_Udemy_testes_integracao_Spring_Boot:Spring Boot e JUnit和Java集成测试
- 基于PHP的最新版有米埠百信卡盟源码.zip
- React30DayGrind:自我描述
- GK888 internal font.zip
- dicebag:使用骰子符号滚动骰子的 Discord 机器人
- ESP32-HomeKit-Night-Light:使用具有WS2812 LED的ESP32板与Apple HomeKit兼容的小夜灯
- new-portfolio-with-react-bootstrap:示范网站
- webpack5-federation:快速秒杀
- 系列计算器:Calculadora deSéries和MatériadeCálculoII
- quizapp
- 学生公寓管理系统ASP毕业设计(源代码+论文).zip
- evdi-hello:evdi库的测试库
- esiil:ESI API 接口
- Mapping_Earthquakes