Preguntas de revisión de C++

Supongamos que ya hay definidas cuatro clases A, B, C y D. ¿Cuál es el orden en que se llaman los destructores de A, B, C y D en el programa? ( )

C c;

void main()

{

 A*pa=new A();

 B b;

 static D d;

 delete pa;

}


Análisis: Primero, pa se libera manualmente, por lo que primero se llamará al destructor de A, y luego los objetos locales se liberarán en el orden inverso a la definición. Si solo hay b aquí, se liberará b, entonces el estático Se liberará el objeto local d y luego se liberará el objeto global c.

¿Cuál de las siguientes afirmaciones es incorrecta ( )? (Preguntas de la prueba escrita de Alibaba 2015)

A.引用必须初始化,指针不必
B.引用初始化以后不能被改变,指针可以改变所指的对象
C.不存在指向空值的引用,但是存在指向空值的指针
D.一个引用可以看作是某个变量的一个“别名”
E.引用传值,指针传地址
F.函数参数可以声明为引用或指针类型

A. La referencia debe estar inicializada. Debe quedar claro a qué variable u objeto se hace referencia al definir la referencia. De lo contrario, habrá un error de sintaxis. Cuando el puntero no se inicializa, el valor apuntará a un punto aleatorio.

B. Una vez que se inicializa y especifica una referencia cuando se define, no se puede modificar y el puntero se puede cambiar para que apunte a

C. La referencia debe estar expuesta, no puede aparecer ninguna referencia nula y al puntero se le puede asignar un valor nulo.

D. La comprensión de referencia simple y cruda puede entenderse como el "alias" de la variable u objeto referenciado.

E. En la superficie, la referencia parece pasar por valor, pero su esencia también es pasar la dirección, pero el compilador hace este trabajo, por lo que está mal.

F. Para mejorar la eficiencia en las llamadas a funciones, a menudo se utilizan referencias o punteros para pasar variables u objetos como parámetros de función.

Supongo que te gusta

Origin blog.csdn.net/AkieMo/article/details/131891714
Recomendado
Clasificación