自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

顺子的专栏

顺子的个人博客

  • 博客(8)
  • 资源 (3)
  • 收藏
  • 关注

原创 条款20:宁以pass-by-reference-to-const替换pass-by-value

   我们考虑以下class继承体系: class Person { public:  Person();  virtual ~Person();  ... private:  string name;  string address; }; class Student : public Person { public:  Student();  ~Student();  ... privat

2009-10-30 13:59:00 476

原创 条款17:以独立语句将newed对象置入智能指针

   假设我们有一个函数用来揭示处理程序的优先权,另外一个函数用来在某动态分配所得的Widget上进行某些带有优先权的处理:  int Priority();  void ProcessWidget(std::auto_ptr pw, int priority);  由于谨记“以对象管理资源”的智慧铭言,processWidget决定对其动态分配得来的Widget运用智能指针。  现在我们来调用这

2009-10-28 18:08:00 387

转载 __cdecl __stdcall __fastcall

1.如果函数func是__cdecl(默认调用方式),调用时情况如下     int   main()    ...{    //参数从右到左压栈    push   4    push   3    push   2    push   1    call   func    add   esp   0x10   //调用者恢复堆栈指针esp,4个参数的大小是0x10(4x4)    }  

2009-10-25 23:18:00 387

原创 条款12:复制对象时勿忘其每一个成分

当我们编写一个copying函数,请确保(1)复制所有local成员变量,(2)调用所有base class内的适当的copying函数下面我们来看一个例子怎样来具体实现子类的copying函数void logCall(const string &funcNmae){ cout }class Customer{public: Customer(const string &strname) :

2009-10-23 17:51:00 420

原创 条款11:在operator= 中处理“自我赋值”

我们来看看下面一段代码,class Widget中自己实现了拷贝构造函数class Bitmap{};class Widget{public: Widget () {  pb = new Bitmap; } Widget& operator=(const Widget &rhs);private: Bitmap *pb;};下面有三种方式对Widget& operator=(const

2009-10-23 17:49:00 731 1

原创 条款10:令operator= 返回一个reference to *this

 以前没有太注意在重载类的赋值操作时,为什么总是返回一个类类型的引用。下面我们来看看这是为什么:class CExample{public: CExample (const string &str, int v) : m_str(str), m_val(v) { } void operator=(const CExample &rhs); CExample& operator+=(const

2009-10-22 18:34:00 477

原创 条款09:绝不在构造和析构过程中调用virtual函数

我们设计一个class继承体系来模拟交易如买进、卖出的订单,对于每一笔交易,我们会在审计日志中创建相应的记录,也许我们会这样设计该class体系class Transaction{public: Transaction(); virtual void logTransaction() const = 0;};Transaction::Transaction(){ cout  logTran

2009-10-21 18:38:00 444

原创 条款06: 若不想使用编译器自动生成的函数,就该明确拒绝

如果我们不想使用编译器自动生成的函数,但是你自己又不想提供自己编写的这些编译器可以自动生成的函数给自己或别人使用,此时,你可以将自己编写的这些函数声明为private。我们有一个class HomeForSale,但是我们不希望别人使用HomeForSale中的copy 构造函数和copy assignment操作符,我们可以这样设计此类。class HomeForSale{public: H

2009-10-21 18:32:00 478

oracle 10g concepts

涉及了你需要知道的许多重要的Oracle概念

2009-02-26

高质量C++编程指南

一本学习编程规范的好书

2008-08-20

asp.net深入编程中文教程

asp.net深入编程中文教程,asp.net深入编程中文教程

2007-08-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除