_J

please call me j

导航

随笔分类 -  C++

Code Language
【c++手记】关于inline使用
摘要:inline关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。《c++ primer》P221将一部分的小操作(如两int型变量比较)定义为一个函数有几点好处:1.阅读和理解一个函数的调用,比读一条用等价的条件表达式容易得多2.修改函数比修改每一处表达式容易3.使用函数保证统一行为4.函数可以重用,不必重写代码【一般函数与内联函数区别】but,写成函数有个缺点:调用函数比调用表达式要慢!调用函数工厂是需要:保存寄存器;返回时恢复;负责实参;程序必须转向一个新位置执行。使用内联函数可以帮助解决以上问题。【编译层面】将函数指定为内联函数,程序中每个调用点“内联地”展 阅读全文

posted @ 2012-09-03 00:00 _J 阅读(183) 评论(0) 推荐(0)

【c++帖子】const&纯虚函数
摘要:(讨论出自http://topic.csdn.net/u/20071228/14/97e808a6-5220-4466-8ee5-7af6fc3eba53.html)(http://topic.csdn.net/u/20070425/20/9e7d18eb-d438-4e3e-80db-914e45f38798.html)若纯虚函数为const修饰时,其子类情况:1.其函数不加const,则子类的函数覆盖了父类的函数2.其函数加const,则为标准的多态【评价】这份帖子非常棒!解析了相关const修饰成员函数的一些特别地方(例子在网址一楼处)首先你得明白成员函数void f() const;v 阅读全文

posted @ 2012-08-31 13:28 _J 阅读(526) 评论(0) 推荐(0)

【c++手记】句柄类&智能指针
摘要:很多同学学习c++都会看的一本经典教材《Primer》而在面向对象里面提及到一种概念-智能指针,而往往同学会出现以下的问题【问题】 智能指针是不是一种指针? stl里面的智能指针是什么?【回答】 智能指针是一种类,别名称为句柄类。而这种类型恰恰是《设计模式》中的代理模式、适配器模式(这两种模式以后会在MyBlog的相关文章介绍)。 stl里面的智能指针同样也不是指针!是一种类型! (请往下看!)以下为Baidu解释【定义】句柄类(智能指针smart point)是存储指向动态分配(堆)对象指针的类。除了能够在适当的时间自动删除指向的对象外,他们的工作机制很像C++的内置指针。智能指针... 阅读全文

posted @ 2012-08-30 20:30 _J 阅读(1407) 评论(2) 推荐(0)

【c++手记】Copy Constructor
摘要:【资料】 《primer》P407 复制构造函数【内容】 1. 一种特殊构造函数。特征:单个形参(常用const修饰),是对该类类型的引用。 当定义一个新对象,并用一个同类型的对象,对它进行初始化时。将显示使用复制构造函数。当将该类型的对象传递给函数或从函数返回该类型的对象时,将隐式使用复制构造函数。 2.复制构造函数作用: 1.根据另一个同类型的对象显示或隐式初始化一个对象。(详细请参照《Primer》P406“对象定义形式”) 2.复制一个对象,将它作为实参传给一个函数(函数的形参为类类型时),复制实参的值。(《Primer》P407倒数第6行) 3.函数返... 阅读全文

posted @ 2012-08-28 13:37 _J 阅读(151) 评论(0) 推荐(0)

【c++手记】关于const的问题&资料
摘要:【问题】 constint Func(constint &constx)const;//error!【解析】 1.第一个const:(在函数中)修饰返回值 声明了返回值后,const按照"修饰原则"进行修饰,起到相应的保护作用。 (何为保护作用?如果给采用“指针传递”方式的函数返回值加const修饰,那么函数返回值(即指针)的所指对象不能被修改,该返回值只能被赋给加const修饰的同类型指针) 2.第二个const:(在函数中)修饰参数 用相应的变量初始化const常量,则在函数体中,按照const所修饰的部分进行常量化。 如形参为const A* a,则不能对传递 阅读全文

posted @ 2012-08-28 00:12 _J 阅读(186) 评论(0) 推荐(0)