随笔分类 -  Effective c++

摘要:Use private inheritance judiciously. 如果classes之间的继承关系是private,编译器不会自动将一个derived class对象转换为一个base class对象。这和public继承的情况不同。 由private base class继承而来的所有成员,在derived class中都会变成private属性,纵使他们在base class中原本... 阅读全文
posted @ 2013-10-24 21:07 CrazyCode. 阅读(113) 评论(0) 推荐(0)
摘要:Differentiate between inheritance of interface and inheritance of implementation. 请记住:接口继承和实现继承不同,在public继承之下,derived classes总是继承base class的接口. pure virtual函数只具体指定接口继承。 简朴的(非纯)impure virtual函数具体指定接... 阅读全文
posted @ 2013-10-23 16:33 CrazyCode. 阅读(135) 评论(0) 推荐(0)
摘要:当异常被抛出时,带有异常安全性的函数: 1.不泄露任何资源 2.不允许数据败坏 异常安全函数提供以下三个保证之一: 1.基本承诺:如果异常被抛出,程序内的任何事物仍然保持在有效的状态下。没有任何对象或数据结构会因此而败坏,所有对象都处于一种内部前后一致的状态。 2.强烈保证:如果异常被抛出,程序状态不改变.调用这样的函数需有这样的认知:如果函数成功,就是完全成功,如果函数失败,程序... 阅读全文
posted @ 2013-10-23 09:21 CrazyCode. 阅读(224) 评论(0) 推荐(0)
摘要:缺省情况下c++以by value的方式传递对象至(或来自)函数。除非你另外指定,否则函数参数都是以实际实参的复件(副本)为初值,而调用端所获得的亦是函数返回值的一个复件。这些复件是由对象的copy构造函数产出,这可能使得pass-by-value成为昂贵的操作. #include "stdafx.h" #include #include class Wind... 阅读全文
posted @ 2013-10-18 16:29 CrazyCode. 阅读(201) 评论(0) 推荐(0)
摘要:copy构造函数被用来"以同型对象初始化醉卧对象",copy assignment操作符被用来"从另一个同型对象中拷贝其值到自我对象":#include "stdafx.h"#include using namespace std;class Widget{public:Widget();//默认构造函数Widget(const Widget& rhs);//复制构造函数Widget& operator = (const Widget& rhs);//赋值操作符};int _tmain(int argc, _T 阅读全文
posted @ 2013-10-12 16:10 CrazyCode. 阅读(428) 评论(0) 推荐(0)
摘要:size_t只是一个typedef,是c++计算个数,如字符串内的字符个数或者stl容器内的元素个数时用的某种不带正负号unsigned类型。它也是vector,deque和string内的operator[]函数接受的参数类型。 阅读全文
posted @ 2013-10-12 15:52 CrazyCode. 阅读(136) 评论(0) 推荐(0)