天天看点

C++专项练习知识点(二)

1、

2、

3、char str[]=“xunlei”;

char str2[]={‘x’,‘u’,‘n’,‘l’,‘e’,‘i’};

//sizeof(str)计算’\0’,sizeof(str2)不计算’\0’

所以sizeof(str)=7,sizeof(str2)=6

4、while(i++<7) { 语句1 }可以写成:

while(i<7){

i++;

if…

}

5、struct S a[3]={{3,“abc”},{5,“def”},{7,“ghi”}};

p=a;

p中存放a的地址(相当于首元素地址)

A:++p相当于加到a[1],(++p)->n == 5

B:a为首元素地址,+1,相当于加到a[1],(a+1)->n == 5

C:p后++,这时p还是在a[0],p+±>n ==3

D:p+1相当于加到a[1],(++p)->n == 5

6、<code>int i=10, *p=&amp;i; *p =&i等价于 p=&amp;i;*p=i</code>

7、多重继承图示:(以左边为例)

C++专项练习知识点(二)

多重继承定义: 一个派生类(D)有2个或2个以上的基类(B和C);

多重继承引起的二义性: 假如上述这些基类(B和C)具有相同的基类A,A中的成员数据和成员函数,最终都会以双份的形式拷贝到类D中,

那么调用的时候就会出现二义性问题。

虚基类: 专门用来解决多重继承引起的二义性问题;(可以理解为D直接从A继承)

8、指针类型总是和int类型长度一致,int 在32位就是4,在64位就是8

9、

C++专项练习知识点(二)

a+sizeof(int),等价于a[4]的地址,因为数组a为int型,步长为4,+1就相当于向前进了4字节,等于a[1]地址,+4相当于进了16字节,等于a[4]地址

10、拷贝构造函数和拷贝赋值函数注意点

情况1输出:

C++专项练习知识点(二)

情况2输出:

C++专项练习知识点(二)

情况3输出

C++专项练习知识点(二)

11、

题目

C++专项练习知识点(二)

12、

13、

14、

C++专项练习知识点(二)

15、

16、

17、

18、

19、

20、

C++专项练习知识点(二)

21、

C++专项练习知识点(二)

22、

C++专项练习知识点(二)

23、

C++专项练习知识点(二)

24、

25、

26、

继续阅读