C++博客 :: 首页 :: 联系 ::  :: 管理
  163 Posts :: 4 Stories :: 350 Comments :: 0 Trackbacks

常用链接

留言簿(48)

我参与的团队

搜索

  •  

积分与排名

  • 积分 - 369698
  • 排名 - 52

最新评论

阅读排行榜

评论排行榜

近日读林锐的《高质量C++编程》,作如下学习笔记。
(一)每个类只有一个析构函数和赋值函数,却可以有多个构造函数。
(二)C++编译器会为每个类添加一个无参构造函数,析构函数,赋值函数,拷贝构造函数。
(三)缺省的拷贝函数,和赋值函数采用位拷贝的方式,而不是值拷贝。类中含有指针变量时容易出错。
(四)构造函数的初始化表。必须在派生类的初始化表中调用基类的构造函数,类中const常量也必须在类的初始化列表赋值,类成员的初始化可以在初始化表或者函数体内赋值的方式,这两种方式的效率不完全相同。
(五)构造从类的最根出开始,先调用基类的构造函数,然后调用成员对象的构造函数。析构的顺序与之相反。成员变量的初始化顺序又定义的顺序决定,而不是在初始化列表的顺序决定的。
(六)拷贝构造函数在对象创建时调用,赋值函数只能被已经存在的对象条用。 赋值函数中必须检查是否自赋值。注意不要把
              if(this == &other)      
          写成  (*this == other)
自己不想写这两个函数,又不让别人调用,可以把它们声明为private。
(七)编写派生类的赋值函数,不要忘记对基类的成员重新赋值。Base::Operate=  (other)


posted on 2008-01-11 19:36 sdfasdf 阅读(1071) 评论(0)  编辑 收藏 引用 所属分类: C++

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理