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人在功能参数中付出了相当大的关注,但在本地(甚至是成员)变量中并不多.我们可能会更好地这样做.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。