C++编程小记

1.判断浮点数a和b是否相等时,应判断二者之差的绝对值是否小于某个阈值{eg:(fabs(a-b)<1e-9)};

2.判断一个整数是否为奇数的方法,用(x%2!=0),不要用(x%2==0),因为x可能为负数;或者使用(x&1==1),偶数的二进制的末尾为0,奇数的二进制的末尾为1;

3.用char作为数组下标时,应该先强制转型为unsigned char;

4.封装、继承和多态:

1).通过创建来支持封装和数据隐藏(public、protected、private)。数据隐藏是指将一个模块的内部数据或操作隐藏起来,其他程序只能通过该模块提供的公开操作来访问它们的保护措施;封装则是指将一组数据与这些数据上的相关操作组织在一起的措施。

2).继承是面向对象程序设计中使代码可以复用的重要手段,它允许程序员在一个或者若干个已知类的基础上,进行适当的修改、扩展构成一个新类。这样产生的新的类叫派生类,它具有原来作为基础的类的特征。

3).多态分为编译时多态和运行时多态。编译时多态通过重载机制获得,包括函数重载运算符重载;运行时多态通过继承结合(虚函数)动态绑定获得。

5.虚函数和虚函数表:

用保留字virtual定义的成员函数称为虚函数,通过虚函数指针和虚函数表实现。每个类的实例化对象都会拥有虚函数指针并且都排列在对象的地址首部。而它们也都是按照一定的顺序组织起来的,从而构成了一种表状结构,称为虚函数表 (virtual table)

posted @ 2019-08-26 10:15  卡尔的思索  阅读(...)  评论(...编辑  收藏