在32位的机器环境下,char、short、int、float、double这样的内置数据类型sizeof值的大小分别为1,2,4,4,8;
C++标模板库(standard Template Library,STL)里面提供了10种通用的容器类。vector(向量)中的元素是按照插入的顺序排列的;deque(队列)中的元素是按照进队列的顺序排列的;list中的元素是无序的;map中的元素是采用了平衡二叉树进行排列的,是为了具有更高的查询效率;
在所有类说明中,内部定义的成员函数都是内联函数
符号优先级比较:
算数运算符>关系运算符>与(&&)>或(||)>赋值运算符
a、C++中成员函数被重载的特征:
(1)相同的范围(同一个类中);
(2)函数名字相同;
(3)参数不同(与参数类型无关,参数类型相同时不是重载);
(4)virtual关键字可有可无;
b、覆盖是指派生类的函数覆盖基类函数,规则如下:
(1)函数名字相同;
(2)参数相同;
(3)基类函数必须有Virtual 关键字;
c、“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的成员函数与基类的成员函数同名,但是参数不同,此时,有无virtual关键字,基类的成员函数都会被隐藏;
(2)如果派生类的函数与基类的函数同名,并且参数相同,但是基类的函数没有关键字“virtual”,此时,基类的成员函数被隐藏;
以下程序输出值为多少?
short i=65537;
int j=i+1;
printf("i=%d,j=%d\n",i,j);
输出为i=1;j=2;
解析:
因为short占俩个字节即16bit,这里i=65537转化为二进制则为1 0000 0000 0000 0001;溢出了,所以i的值为1;j=i+1=2;
下面俩段代码中的for循环分别执行多少次?
1、
unsigned short i,j;
for(i=0,j=2;i!=j;i+=5,j+=7){}
2、unsigned short i,j;
for(i=3,j=7;i!=j;i+=3,j+=7){}
unsigned short型占16bit,最大值为65536;
看成一个跑圈追人的问题;
1、可以认为j比i落后65536-2=65534;j每次追赶2个,63334/2=32767;
2、同理j比i落后65536-4=65532;j每次追赶4个,65532/4=16383