Usar srand en vez de rand para generar números aleatorios.
Usar múltiples especificadores de clase de almacenamiento
para un identificador. Sólo puede ser aplicado un especificador
de clase de almacenamiento a un identificador.
Utilizar accidentalmente el mismo nombre para un identificador en
un bloque interno, que se haya usado para un identificador en un
bloque externo, cuando de hecho, el programador desea que durante
la duración del bloque interno el identificador del bloque
externo esté activado.
Olvidar el regresar un valor de una función recursiva cuando
se requiere cuando se requiere de uno.
Omitir ya sea el caso base, o escribir el paso de recursión
de forma incorrecta, de tal forma que no converja al caso base,
causando recursión infinita, y agotado de forma eventual
la memoria. Esto es análogo al problema de un ciclo infinito
en una solución iterativa (no recursiva). La recursión
infinita también puede ser causada al proporcionarle una
entrada no esperada.
Escribir programas que dependen del orden de evaluación de
los operandos de operadores distintos que &&, ||, ?:, y
el operador coma (,) puede llevar a errores, porque los compiladores
no necesariamente evalúan los operandos en el orden en que
los programas esperan.
Hacer que accidentalmente una función no recursiva se llame
a sí misma, ya sea directa o indirecta a través de
otra función.
Resultar un error de sintaxis redefinir una clase derivada
como función virtual de clase base, sin asegurarse que la
función derivada tenga el mismo tipo de regreso y signatura
que la versión de clase base.
Es un error de sintaxis intentar producir un objeto a partir de
una clase abstracta (es decir, a partir de una clase que contenga
una o más funciones virtuales puras).
Declarar un constructor como función virtual. Los constructores
no pueden ser virtuales.
|