C++编程要点总结

需积分: 9 0 下载量 159 浏览量 更新于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常量只能在初始化列表里被初始化;缺省的拷贝构造函数和赋值函数均以“位拷贝”的方式存在,若类中含有指针变量,那么这两个函数将隐含了错误;拷贝构造函数在对象创建时调用,而赋值构造函数只能被已经存在的对象调用。