C ++ Primer Quinta edición: Ejercicio 2.33 2.34 2.35 2.36 2.37 2.38

Ejercicio 2.33 2.34
d es ilegal: d es un apuntador entero
e es ilegal: e es un apuntador a una constante entera
g es ilegal: g es una referencia constante entera

Ejercicio 2.35
i: constante entera
j: entero
k: referencia de constante entera
p: puntero entero
j2: constante entera
k2: referencia de constante entera

Ejercicio 2.36

#include<iostream>

int main()
{
    
    
	int a = 3, b = 4;
	decltype(a) c = a;
	decltype((b)) d = a;
	++c;
	++d;
}

a: int, 4
b: int, 4
c: int, 4
d: referencia, 4

Ejercicio 2.37

#include<iostream>

int main()
{
    
    
	int a = 3, b = 4;
	decltype(a) c = a;
	decltype(a = b) d = a;
}

a: int, 3
b: int, 4
c: int, 3
d: referencia 3

Ejercicio 2.38

#include<iostream>

int main()
{
    
    
	const int i = 5;
	auto a = i;//a为int,忽略顶层const
	const auto a2 = i;//a2为const int
	decltype(i) b = 5;//b为对常量的引用
}

La forma en que decltype maneja la constante de nivel superior y las referencias es diferente de auto. El tipo de la variable o expresión devuelta incluye la constante de nivel superior y la referencia
decltype. El tipo de resultado está relacionado con la forma de expresión y el tipo obtenido al agregar paréntesis es una referencia

Supongo que te gusta

Origin blog.csdn.net/Xgggcalled/article/details/108940891
Recomendado
Clasificación