1. 异或的使用 (当只有一个为1时候,才为1)
unsigned char ucParm1 = 0x01;
unsigned char ucParm2 = 0x02;
unsigned char result = ucParm1 ^ ucParm2; //结果为3
2。内联函数的好处 inline
分为两个部分:
1)构建个函数出来,能够好理解;
2)但是函数调用会导致效率降低,内联能够使得编译时候直接进代码,效率高。
3.delete []p 与 delete p 区别
前者释放全部的数组,后者只释放第一个内存
class tmp
{
public:
tmp()
{
m_p = new char[1024*1024];
};
~tmp()
{
delete m_p;
}
private:
char *m_p;
};
void main()
{
for (int i = 0; i < 100; i++)
{
tmp *p=new tmp[20];
delete [] p; //无异常,能够执行100次
//delete p; //d异常,只能够 ~tmp()一次,而没有执行19个~tmp(),且后续的99次循环不执行
}
}
综上测试, delete [] p;释放全部的数组,delete p只释放第一个内存
4.前向声明
class A;
class B:public A//错误,A没有定义,无法生成继承类
应该为
//a.h
class B;
class A;
//b.h
class B:public A
5.multimap使用
icount = multimap.count('a');
it = multimap.find('a');
for(int i = 0; i < icount; ++i, ++it)
6.纯虚函数的用途
class A;
{
virtual int GetType()= 0;
}
class B:public A
{
virtual int GetType(){return 0};
}
纯虚函数能够使得A 对象不会生成。