Effective C++ 随笔(4)】的更多相关文章

条款27:尽量稍作转型动作 const_cast:常量性移除 dynamic_cast:安全向下转型 reinterpret_cast: static_cast: 如在子类当中享调用父类当中的某个方法,尝试使用转型方式,将其转换为父类的方式是不对的 static_cast<fclass>(*this).function(); function执行的是在一个临时对象上,而不是当前对象的父类上.如要调用父类方法,需使用下属方式 fclass::function(); 条款30:透彻理解inlini…
条款21:必须返回对象时,别妄想返回其reference 例子: Raional类可以执行有理数的一些运算,并且使用heap内存申请 并且其operator*函数为 const Rational& operator*(const Rational& lhs,const Rational& rhs){ Ratinal* result = new Rational(.....); return * result; } 在函数中进行了heap内存申请,因此返回引用时没有问题的,但是问题在…
条款12: 以对象管理资源 两种只能指针: std:auto_ptr<> 当使用copy操作室,原先的智能指针指向为null std:tr1:share_ptr<int> spi(); 当可以多个指向同样的地址,但是当delete是会进行根据指向改地址的指针数量是否要delete这块内存 条款13 在资源管理中小心copying行为 class Lock{ public: explicit Lock(Mutex* pm):mutexPtr(pm){ lock(mutexPtr);…
条款5 了解c++默默编写并调用哪些函数 编译器自动生成的copy 构造函数,copy赋值操作符,析构函数,构造函数,这些都是public和inline的,此处inline的意思是他们的定义都是在头文件当中的 假设有一个引用类型的数据成员,那么上面的赋值操作是不对的,因为引用不能改变 条款6 如不想使用编译器自动生成的函数,就该明确拒绝 上面的赋值构造函数,赋值操作符都可以有编译器自动生成,为了拒绝使用上面两种函数,可以创建一个将这种函数定义私用成员的类,从而不会使用这些函数 class Unc…
条款一 c++ 为一个语言联邦 1.四个层次 C:blocks,语句,预处理器,内置数据类型,数组,指针 面向对象的C++:封装,多态,继承 Template C++ STL 条款二 尽量以const,enum,inline代替#define Static const 常量的声明和定义,声明应该是在头文件当中,定义是在实现文件当中.对于基本类型需要一个类似赋值的语句,例如: const double classname::membername = 12; 但是对于对象的定义使用下面的方式 cla…
/*********************************************************** 关于书: 书是我从网上找到的effective Modern C++的样章,内容只到条款4就没有了, 所以现阶段我只能翻译到条款4,不过以后有机会我会继续翻译的. 如果读者找到了完整的版本,欢迎大家发给我.1021842556@qq.com effective Modern C++的样章的下载地址http://pan.baidu.com/s/1ntKBlpf 提取密码是upk…
哈哈,各位园友新年快乐!愚安好久没在园子里写东西了,这次决定针对javascript做一个系列,叫做<小王子浅读Effective javascript>,主要是按照David Herman的<Effective javascript>的内容做一些解读和扩展.原书中有68点针对javascript编程的小tips,很是经典,园友们也可以网上找找PDF读一下,写的很不错,也可以买买原著读读,提醒下,这本书的中文译本也已经出了.为什么叫“浅读”,一方面是愚安并不是专业javascrip…
Linux随笔-鸟哥Linux基础篇学习总结(全) 修改Linux系统语系:LANG-en_US,如果我们想让系统默认的语系变成英文的话我们可以修改系统配置文件:/etc/sysconfig/i18n [root@localhost ~]# cat /etc/sysconfig/i18n LANG="en_US.UTF-8"SYSFONT="latarcyrheb-sun16" [root@localhost scripts]# lltotal 8-rw-r--r-…
初探 AI人工智能系列随笔:syntaxnet 初探(1)…
CoreCLR配置系列 在Windows上编译和调试CoreCLR GC探索系列 C++随笔:.NET CoreCLR之GC探索(1) C++随笔:.NET CoreCLR之GC探索(2) C++随笔:.NET CoreCLR之GC探索(3) C++随笔:.NET CoreCLR之GC探索(4) CoreCLR探索系列 C++随笔:.NET CoreCLR之corleCLR核心探索之coreconsole(1) C++随笔:.NET CoreCLR之corleCLR核心探索之coreconsol…
今天继续来 带大家讲解CoreCLR之GC,首先我们继续看这个GCSample,这篇文章是上一篇文章的继续,如果有不清楚的,还请翻到我写的上一篇随笔.下面我们继续: // Initialize free object methodtable. The GC uses a special array-like methodtable as placeholder // for collected free space. // //初始化释放器(对象方法表),<-不知道翻译得对不对. //GC使用一…
紧接着上次的问题,上次的问题其实很简单,就是HelloWorld.exe运行失败,而本文的目的,就是成功调试HelloWorld这个控制台应用程序. 通过我的寻找,其实是一个名为TryRun的文件出了问题,那但是我们还需要知道前因后果,而并不是单个的问题哦.首先你必须看这篇文章 把CoreCLR的调试环境配置好,然后才能去调试,我们按一下F11,开始我们的调试之旅. 如果你修改过CoreCLR的代码,别忘了生成项目,否则会出现如下错误,其实,改改底层真的很酷.千万别重新生成整个解决方案,会很费时…
div { float: left; } .keyboard > div + div { margin-left: 8px; } --> div{display:table-cell;vertical-align:middle}#crayon-theme-info .content *{float:left}#crayon-theme-info .field{font-weight:bold}#crayon-theme-info .field,#crayon-theme-info .value…
Object类的所有非final方法(equals.hashCode.toString.clone.finalize)都要遵守通用约定(general contract),否则其它依赖于这些约定的类(HashMap,HashSet等)将不能正常工作. 8.覆盖equals时请遵守通用约定 无需覆盖equals的情形: 类的每个实例本质上是唯一的.类代表的是活动实体而不是值的概念.(例如,类Thread) 不关心类"逻辑相等"的功能,从Object继承的equals实现已经足够.(例如,…
2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己!预计在2016年要看12本书,主要涉及java基础.Spring研究.java并发.JVM.分布式之类的.在今年面试的时候深受打击,到处都是问分布式.集群的?难道现在工作两三年的都这么牛逼了?都在搞分布式.集群之类的? 2016书单如下: 1.深入理解Java虚拟机:JVM高级特性与最佳实践---(已看,预计今年看三遍) 2.Oracle查询优化改写技巧与案例---(已看) 3…
从一个实际案例说起 国庆长假前一个礼拜,老大给我分配了这么一个bug,就是打印出来的报表数量为整数的,有的带小数位,有的不带,毫无规律. 根据短短的两个多月的工作经验以及猜测,最终把范围缩小到以下这段代码块(伪代码) String output(double num){//double类型的参数num由DAO层提供 String result=null; if(num等于num的整数部分)//例如12.0000等于12,13.0001不等于13 result=(将num的小数位全部删去,返回相应…
ASP.NET MVC 系列随笔汇总[未完待续……] 为了方便大家浏览所以整理一下,有的系列篇幅中不是很全面以后会慢慢的补全的. 学前篇之: ASP.NET MVC学前篇之扩展方法.链式编程 ASP.NET MVC学前篇之Lambda表达式.依赖倒置 ASP.NET MVC学前篇之Ninject的初步了解 ASP.NET MVC学前篇之请求流程 路由篇: ASP.NET MVC路由(一) ASP.NET MVC路由(二) ASP.NET MVC路由(三) ASP.NET MVC Module A…
这几篇博文只是为了记录学习Beautiful Soup的过程,不仅方便自己以后查看,也许能帮到同样在学习这个技术的朋友.通过学习Beautiful Soup基础知识 完成了一个简单的爬虫服务:从allitebooks.com抓取书籍的书名和每本书对应的ISBN码,然后通过ISBN码去amazon.com抓取对应的价格. 第一部分 Beautiful Soup的基础知识 Beautiful Soup的安装和查找.浏览的方法. 网络爬虫: 从allitebooks.com抓取书籍信息并从amazon…
一共 15 篇随笔,主要是为了记录数据分析过程中的一些小 demo,分享给其他需要的网友,更为了方便以后自己查看,15 篇随笔,每篇内容基本都是以一句说明加一段代码的方式, 保持简单小巧,看起来也清晰 ,一共可以划分为三个大部分: 第一部分简单介绍数据分析,以一个小例子简单说明了什么是数据分析和 IPython 工具: 第二部分是 NumPy 的基础使用,NumPy 是 Python 包,提供科学计算功能,主要是 ndarray 数组对象: 第三部分是 pandas 的基础使用,主要是 Seri…
什么是代码耦合?代码耦合的表现是改了一点毛发而牵动了全身,或者是想要改点东西,需要在一堆代码里面找半天.由于前端需要组织js/css/html,耦合的问题可能会更加明显,下面按照耦合的情况分别说明: 1. 避免全局耦合 这应该是比较常见的耦合.全局耦合就是几个类.模块共用了全局变量或者全局数据结构,特别是一个变量跨了几个文件.例如下面,在html里面定义了一个变量: 在html里面定义全局变量             XHTML   <script> var PAGE = 20; </s…
伪元素是一个好东西,但是很多人都没怎么用,因为他们觉得伪元素太诡异了.其实使用伪元素有很多好处,最大的好处是它可以简化页面的html标签,同时用起来也很方便,善于使用伪元素可以让你的页面更加地简洁优雅. 更好的阅读体验移步:http://yincheng.site/using-before-after 1. 伪元素使用场景 伪元素一般是用于画图,特别是那种无关紧要的分隔线.点之类的小元素,如下图的绿框所示: 上面第一张图的分隔线,就是用before画的.只需要给div套一个类,这个类写一个bef…
p { text-indent: 2em } .triangle-container p { text-indent: 0 } img { margin: 15px 0 } 三角形的场景很常见,打开一个页面可以看到各种各样的三角形: 由于div一般是四边形,要画个三角形并不是那么直观.你可以贴一张png,但是这种办法有点low,或者是用svg的形式,但是太麻烦.三角形其实可以用CSS画出来.如上图提到,可以分为两种三角形,一种是纯色的三角形,第二种是有边框色的三角形,先介绍最简单的纯色三角形.…
div{display:table-cell;vertical-align:middle}#crayon-theme-info .content *{float:left}#crayon-theme-info .field{font-weight:bold}#crayon-theme-info .field,#crayon-theme-info .value{margin-left:5px}#crayon-theme-info .description.value{font-style:ital…
<高性能javascript> 领悟随笔之-------DOM编程篇二 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整个页面文档.DOM编程性能一直以来都是非常受开发者关注的话题,如何编写高性能的DOM是前端开发必不可少的技能. 1.重绘与重排 当浏览器加载完页面所有的元素.js.css.图片之后会自动生成两个数据结构: 1.dom树 (图片为转载) 如图所示,dom树表示了整个页面文档的结构,通过访问dom树我们可以得到某…
<高性能javascript> 领悟随笔之-------DOM编程篇一 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整个页面文档.DOM编程性能一直以来都是非常受开发者关注的话题,如何编写高性能的DOM是前端开发必不可少的技能. 1.DOM访问与修改 访问DOM元素是有一定的性能代价的,有时候这种代价会整体拖慢网页的运行速度,例如循环访问或修改一些元素内容,操作不当会导致页面卡帧,甚至是假死,例如下面的代码. functio…
Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 通过私有构造器强化不可实例化的能力 第5条 避免创建不必要的对象 第6条 消除过期的对象引用 第7条 避免使用终结方法 第1条 考虑用静态工厂方法代替构造器 对于类而言, 最常用的获取实例的方法就是提供一个公有的构造器, 还有一种方法, 就是提供一个公有的静态工厂方法(static factory…
1.简单清除浏览器样式 *{        padding: 0px;        margin: 0px;    } 2.得到屏幕范围的div html,body{        width: 100%;        height: 100%;    }    #outer{        width: 100%;        height: 100%;    } 3.div水平居屏幕中间 #outer{        width: 100%;        height: 100%; …
来源于 MVA 的 快速入门:Kinect for Windows v2 开发 的学习随笔 具体内容为上图所示章节内容 章节内全部代码:GitHub地址点我(链接失效,待补档) <Page <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Image Name="/> <Canvas Name="/> </Grid>…
UML:Unified Modeling Language(统一建模语言) 作为我专业学科里的一门语言,其目的就是交流,同客户交流,同自己交流. 用图像和文字,详细地讲解将要做的工程的 需求和功能细节   经过一长段历史的发展,UML已经成为一个成熟的交流平台了,有了规范的规则限制,统一了语言,也就统一的交流方法.所以,我的第一个认识就是UML非常重要. 大学上的课程中,初识UML是存留几个类型的图的印象. UML图分为两类图:结构型的图和行为型的图 (1)结构型的图(Structure Dia…
前几天转过一篇Android上模拟按键操作.触屏事件的博客,昨天又去找了百度.谷歌了一下,写了一点简单的测试代码,留待不时之需.有需要看之前转载的那篇博客的请看这里→_→转:Android随笔之——使用Root权限实现后台模拟全局按键.触屏事件方法(类似按键精灵),这里我就直接上代码了. package com.lsj.keyboardsample; import android.app.Activity; import android.app.Instrumentation; import a…