1、程序的基本结构中选择结构又叫分支结构,有单分支与多分支两种。

【知识拓展】
任何简单或复杂的算法都可以由顺序结构、选择结构(又叫分支结构,有单分支,双分支,多分支)和循环结构这三种基本结构组合而成。

2、看以下代码:

A *pa = new A[10];
delete pa;

则类A的构造函数和析构函数分别执行了几次(1)

分析:

deletedelete[]都会完整的释放申请的所有内存空间(无论是数组还是单元素)
delete[]delete的区别很简单,只在于调用析构函数的次数。而基本类型没有析构函数,所以自然不会调用析构函数了。对于自定义类型,delete只会调用一次析构函数,而且只会调用将要释放的内存空间第一个对象。而delete[]会调用(将要释放的内存空间的大小/类型大小)次析构函数。

3、C语言规定:简单变量作为实参时,它和对应形参之间的数据传递方式是(单向值传递)

分析:

简单变量作为实参时,将把该变量所占内存单元的值传递给形参,实参和形参各占不同的内存单元,传递完后,实参和形参不再有任何联系,所以这种传递方式也叫做单向值传递方式。

4、C语言,设有宏定义:

#define A 4+5
#define B A*A

则表达式B*B的值为69

分析:

需要注意的是,宏是完全按照顺序逐字逐句替代,不要先计算出答案再替换进去:BB=AAAA=4+54+54+54+54+5=69

5、#include "file.h"和#include <file.h>的区别是(#include "file.h";是指编译器将从当前工作目录上开始查找此文件)

6、多态类中的虚函数表建立在(编译阶段)

分析:

函数表是在编译期就建立了,各个虚拟函数这时被组织成了一个函数的入口地址的数组。而对象的隐藏成员——虚拟函数表指针是在构造函数被调用时进行初始化的,这是实现多态的关键。

7、C++中,关于new运算符:运算符new可以用来动态创建对象和对象数组;使用运算符new创建对象时,会调用类的构造函数。new创建之后,系统并不会自动销毁 需要程序员调用delete销毁。其中,new/deletenew[]/delete[],这个必须要匹配。

8、若指针p已正确定义,要使p指向两个连续的整型动态存储单元:
p=(int*)malloc(2*sizeof(int));
p=(int*)calloc(2,sizeof(int));

9、静态成员函数、内联函数、构造函数不能声明为虚函数。

【知识拓展】

1.普通函数(不能被覆盖)
2.友元函数(C++不支持友元函数继承)
3.内联函数(编译期间展开,虚函数是在运行期间绑定)
4.构造函数(没有对象不能使用构造函数,先有构造函数后有虚函数,虚函数是对对象的动作)
5.静态成员函数(只有一份大家共享)

只需要记住可以声明成虚函数的就行!(普通的成员函数或析构函数)
虚函数的使用原则:可以把public或protected的部分成员函数声明为虚函数;
C++中的析构函数通常是虚析构函数;
构造函数不能声明为虚函数;
虚函数不能声明为静态的、全局的、友元的。