c++
Trymer
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
模板函数的重载
由于template不支持函数的偏特化,所以我们需要利用重载来处理。假如有一个函数create定义如下templateT* Create(const U & arg){ return new T(arg);}我们需要对这个函数偏特化处理,如果模板支持函数的偏特化,则应该是这样定义//非法的定义templatewidget* Create(const U原创 2013-11-05 11:03:45 · 766 阅读 · 0 评论 -
两层嵌套for循环的效率比较
情况一:两层for循环,外层循环次数为1000000,内层循环次数为10。情况二:两层for循环,内层循环次数为1000000,外层循环次数为10。正常情况下,次数多的循环放在内层,会减少cache更新数据的次数,当离开内层循环的时候会恢复外层的计数器,外层循环次数越少,恢复计数器的次数越少,效率较高,由此看来情况二更加高效。从cpu指令执行机制上来分析,因为基本所有cpu都有原创 2013-11-05 23:41:21 · 16652 阅读 · 2 评论 -
编译期确定类型关系
假设两个类型T和U,怎样能够在编译器知道他们是否能够转换?这样可以避免使用dynamic_cast之类的运行期函数,提高运行效率。sizeof是解决问题的关键,不管表达式有多复杂,sizeof会直接传回大小,不需托到执行期才评估。通过定义两个重载函数,参数分别是U类型和任意类型,用T对象来调用这个函数,如果调用的是U类型参数的版本,则说明T类型可以自动转换成U类型。为了在编译期就能发现原创 2013-11-06 23:18:00 · 626 阅读 · 0 评论 -
c++重<<操作符
因为作为一个类的成员函数,ostream& operator如果要重载friend ostream& operator原创 2013-12-08 20:59:10 · 588 阅读 · 0 评论 -
C++模版使用技巧--Int2Type
一 Int2Type平常我们所看到的int是一个类型,例如1,2,3...等属于int。 但是这里说的是通过模版使每一个int类型变量都当成是不同的类型。二 C++模版的迟绑定这个名字是我起的,因为不知道正式的称呼是什么,意思是说在使用C++的模版的时候,只有在你的代码里面调用了某个模版方法,在编译的时候才会产生对应的方法,也即编译后的代码中不包含我们没有使用的模版方法。看下面的实例是转载 2013-11-03 22:41:15 · 822 阅读 · 0 评论 -
C++类型转换总结
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a。C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。const_cast,字面上理解就是去const属性。static_cast,命名上理解是静态类型转换。如int转换成char。dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类转载 2013-11-06 22:25:05 · 433 阅读 · 0 评论
分享