c – 是否建议将指针指向堆内存为“const”?

前端之家收集整理的这篇文章主要介绍了c – 是否建议将指针指向堆内存为“const”?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
T *p = new T();

对于堆上的指针,可能会有灾难性的操作,

p++;  // (1) scope missed
p = new T(); // (2) re-assignment

这将导致内存泄漏或由于删除错误而导致的崩溃.除了使用智能指针,总是使堆指针成为const;

T* const p = new T();  // now "p" is not modifiable

这个问题在于保持良好的编程实践和编码风格.

解决方法

我犹豫,总是说,但你提出的看法似乎是很多/大多数情况下合理的. Const的正确性是大多数C人在功能参数中付出了相当大的关注,但在本地(甚至是成员)变量中并不多.我们可能会更好地这样做.

猜你在找的C&C++相关文章