Effective C++
文章平均质量分 71
L_J_SHOU
从蛛丝马迹中寻找结果
展开
-
Effective C++ ----以对象管理资源
以对象管理资源通过对象的析构函数的自动释放资源原创 2013-12-24 15:52:01 · 893 阅读 · 0 评论 -
以独立语句将 newed 对象放入智能指针
如下的代码,虽然使用了智能指针 shared_ptr , 但是还是可能泄漏资源。processWidget(shared_ptr(new Widget), priority());上述函数有两个参数,第一个是 shared_ptr, 第二个是纯粹是 priority()函数的调用。调用时,编译器必须创建代码,包括如下三件事情:调用 priority执行 new Widg原创 2014-07-01 20:40:14 · 1038 阅读 · 0 评论 -
operator=处理自我赋值
有许多时候,我们自己编写类的operator=函数(例如,当类中包含指针时)。考虑如下的一个类:class Widget {public: Widget(int x=0): val(new int(x)) {} ~Widget() { delete val; } Widget(const Widget &rhs): val(new int(*rhs.val)) {} //原创 2014-07-01 20:52:18 · 1639 阅读 · 0 评论 -
《转》解决 Stack Overflow
转 解决Stack Overflow前言程序员最痛苦的事莫过于深陷于BUG的泥潭,我也没少在这上面摔跤。这里,我把自己的一些经验教训总结出来,涉及的内容包括死循环、死锁、内存泄漏以及内存访问错误等,如果能对朋友们有所帮助,那就再好不过了。不过,我不打算按照循序渐进的方式来撰写这些文章,而是想到哪写到哪,也许到最后才会形成一个完整的系列。本节将以一个真实例子讲述如何在VC转载 2014-07-22 14:32:08 · 1644 阅读 · 0 评论 -
如何禁止C++ 类支持拷贝
如何禁止C++ 类支持拷贝C++ 编译器默默地为你做了不少工作当你写下class Empty {};//其实等价于class Empty {public: Empty() { ... } //default constructor Empty(const Empty &rhs) { ... } //copy constructor ~Empty() { ...原创 2014-06-30 13:17:12 · 4588 阅读 · 5 评论 -
绝不在构造和析构函数中调用 virtual 函数
看下面的这段代码,问 print调用的是基类还是派生类的版本?/** * @file virtual-constructor.cc * @brief * @author L.J.SHOU shoulinjun@126.com * @version 0.1.00 * @date 2014-06-28 */#include using namespace st原创 2014-06-29 10:35:19 · 2070 阅读 · 3 评论 -
C++ mem_fun 和 mem_fun_ref 的用法
假设我们有以下的一个类:原创 2014-06-28 20:48:10 · 3221 阅读 · 1 评论 -
STL源码分析《4》----Traits技术
STL原创 2014-03-08 18:20:52 · 2012 阅读 · 2 评论 -
Interview----求 1+2+...+n, 不能用乘除法、for、while if、else、switch、case 等关键字以及条件判断语句 (A?B:C)
题目描述:求 1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case 等关键字以及条件判断语句 (A?B:C)。分析:首先想到的是写递归函数,但是遇到一个问题,递归函数总需要一个出口,不然会无穷递归下去。出口一半是 if() return. 题目又要求不能使用 if 语句。什么语句有类似与 if 的选择功能呢??原创 2014-03-05 19:33:37 · 5815 阅读 · 1 评论 -
Python, Java, C++, Perl 面向对象思想比较
面对对象语言的设计哲学通常分为以下两种。第一种思路是基类的作者定下一系列的规则,规定使用该基类的人(派生类的作者)可以干什么事,不能干什么事。C++,和 Java 就是这一阵营的主要代表。比如说,C++中类定义中的 public, protected, private, virtual 等关键字就是所谓的规则,规定了类的用户可以使用的成员,必须继承接口,或者实现等等。这翻译 2014-07-26 21:18:11 · 2576 阅读 · 0 评论