![]() |
1
24
你真的真的需要读一本好书——学习C++是坦白的,没有一个是不可能的。我推荐 Accelerated C++ |
![]() |
2
15
基础
一定知道
throwing exceptions out of a destructor
最佳做法
Smart Pointers: Or who owns you baby? 高级:
What are the principles guiding your exception handling policy? 常见的泄漏方式
一定知道
最佳做法
高级:
|
![]() |
3
14
或者另一个大内存管理系统发现调用了错误的删除类型:
Resource Allocation Is Initialization )
|
![]() |
5
5
阅读 更有效的C++ 有效STL
我并不清楚,因为引用是指针值的副本,所以我没有预见到任何大的性能问题。
不
首先,你不应该
malloc:类似于new(在堆上分配内存)
谷歌搜索可以找到一些整洁的记忆材料(是这样拼写的吗?)
|
![]() |
6
4
你应该调查一下 smart pointers |
![]() |
7
3
对于C/C++新手来说,这本名为“C和C++中内存作为编程概念”的书是一本非常好的读物。 |
![]() |
8
2
|
![]() |
9
2
当我用C++语言分配内存时,我首先要在使用它之前先把它重新分配。换句话说,我编写分配,然后分配,然后填充中间。养成一贯的习惯很重要。我认为这是最起码要学的。。。对资源进行适当和有纪律的管理。这不仅仅与内存有关,还应该应用于所有资源,包括数据库引用、文件引用、上下文句柄和其他类似的动物。
例子:
关于这一主题的更多知识,有很多很好的参考资料。我发现浏览relisoft.com上的教程对我很有帮助,尽管关于relisoft.com的主要教程是针对Windows的。 Another good reference can be found here. 至于指针和引用之间的区别,主要区别之一是灵活性。您必须立即定义引用(int iExample;国际及;refExample=iExample;)我认为不会有太大的性能差异。然而,更强大、更灵活的指针将更危险,并且需要上述规则来管理。 examples of memory leaks are here . 但你可以通过谷歌搜索“C++内存泄漏”找到更多信息 malloc , free , calloc , realloc ,这些函数与任何其他命令一样,在这些特定情况下,是stdlib中包含的函数。您应该了解它们的功能和使用方法,就像您对其他函数的理解一样,就像常见的printf()一样。 请注意: Smart pointers 另外,我想提一下, Code Complete ,这是我读过的关于资源管理的最好的书。我从头到尾读了很多遍。 |
![]() |
10
2
在其他语言中,您已经必须使用诸如“finally”(在Java中)或“using”(在C#中)之类的机制来跟踪数据库连接、窗口句柄、套接字等。在C++中,只需将内存添加到列表中即可。这在概念上并没有什么不同。 |
![]() |
11
1
另外,不要在大型物体周围走动。向对象传递指针,最好是智能指针。复制大型对象会占用大量处理器时间。 设置并记录有关对象分配和所有权的规则。被调用方还是调用方拥有该对象? 不要返回对本地对象的引用,也不要返回指向本地对象的指针。 |
![]() |
12
1
新的C++用户倾向于像java那样在任何地方都“新”。在很多情况下,这是一个坏习惯,在某些情况下你无法避免(但从我的项目经验来看,这很可能永远不会)。
|
![]() |
13
1
当然,出于性能原因,您可能希望在性能关键型中偶尔有一个new和delete对,但这应该是例外,而不是规则。 |
![]() |
14
0
|
![]() |
TheKing · 为什么数组的地址可以有负值? 2 年前 |
![]() |
yurnero · MATLAB:“加载”一个快速访问功能 6 年前 |
![]() |
joe · 一页可以同时在两个工作集中吗? 6 年前 |
![]() |
Jaques · “.exe”已触发断点 6 年前 |
![]() |
adn bps · 在函数中修改变量的高效内存方法 6 年前 |
![]() |
Gauraang Khurana · C语言中分段错误的不稳定行为 6 年前 |
![]() |
Rajesh K · 如何查找设备中存在的广告垃圾? 6 年前 |