C++
jecklee
这个作者很懒,什么都没留下…
展开
-
不用比较运算符比较两个数的大小
不准在函数体中使用任何比较运算,比如if,for, while等,不准调用任何库函数。基本思路:判断两个数的差值:>=0,则前者大注:a-b可能会溢出,这里没有考虑int max(int a, int b) { int c = a - b; int k = (c >> 31) & 0x1; int max = a - k * c; return max;}原创 2014-04-01 12:59:18 · 3066 阅读 · 0 评论 -
c++继承中的内存布局
谈VC++对象模型(美)简.格雷程化 译译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。 Inside the C++ Object Model虽然是一本好书,然而,书的篇幅多一些,又和具体的VC++关系小一些。因此,从篇幅和内容来看,译者认为本文转载 2014-03-25 14:47:44 · 530 阅读 · 0 评论 -
关于C++中的虚拟继承的一些总结
1.为什么要引入虚拟继承虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下:class Aclass B1:public virtual A;class B2:public vi转载 2014-03-25 22:57:12 · 515 阅读 · 0 评论