A notação abreviada do operador postfix++ não é compilada quando uma conversão explícita de um ponteiro de classe base para um derivado
class A {
};
class B : public A {
public:
voidoperator++( int ) {}
voidoperator++() {}
};
void f( A* a )
{
((B *)a).operator++( 0 ); //нормально
((B *)a).operator++(); //нормально
++((B *)a); //нормально
((B *)a)++; //ошибка
}
class A {
public:
int f() { return ( 1 ); }
};
class B {
public:
B( const A *aa ) : a( aa ) {}
int g() { return ( a.f() ); } //должно быть предупреждение, поскольку a.f() не constconst A *a;
};
Não é a primeira vez, mas é a única vez que recebe tais fotografias quando carrega, o que significa que tem de estabelecer alguns critérios (provavelmente tem um certo tamanho). ). São expostos normalmente em qualquer outro lugar. Por favor, diga-me o que está errado.
Ocorre um erro de compilação desnecessário se a macro usar uma conversão de tipo de resultado e o valor de retorno não for então usado (às vezes é necessário, às vezes não é)
int g( int x ) { return ( x ); }
#define F( X ) (long)g( X )
voidOnStart()
{
int f = F( 0 ); //нормально
F( 0 ); //ошибка компиляции
}
A100: Um erro de compilação desnecessário ocorre se uma macro utiliza uma conversão de tipo de resultado, e o valor de retorno não é subsequentemente utilizado (às vezes é necessário, às vezes não)
Isto não tem nada a ver com a utilização de definições.
Uma simples definição equivalente dará também o mesmo erro
A notação abreviada do operador postfix++ não é compilada quando uma conversão explícita de um ponteiro de classe base para um derivado
Pelo menos o compilador deve avisar que a.f() não é constante
Obrigado pelo aviso, ambos os erros foram corrigidos.
Mas nos modelos. Dar-vos-ei exemplos mais tarde.
Aqui também - não é claro.
tudo funciona correctamente, mas se acrescentar a função intermédia ex2(...)
O resultado é diferente. O que fez o ex2(...) ? - acabou de passar as indicações por referência em
Por favor, dê uma olhada em
Aqui também - não é claro.
tudo funciona correctamente, mas se acrescentar a função intermédia ex2(...)
O resultado é diferente. O que fez o ex2(...) ? - acabou de passar as indicações por referência em
Por favor, dê uma olhada em
Não é a primeira vez, mas é a única vez que recebe tais fotografias quando carrega, o que significa que tem de estabelecer alguns critérios (provavelmente tem um certo tamanho).
). São expostos normalmente em qualquer outro lugar. Por favor, diga-me o que está errado.
Um erro de compilação desnecessário ocorre se uma macro utiliza uma conversão de tipo de resultado, e o valor de retorno não é subsequentemente utilizado (às vezes é necessário, às vezes não)
Isto não tem nada a ver com a utilização de definições.
Uma simples definição equivalente dará também o mesmo erro
P.S. Agora vai haver aqui um vorning.
Após recompilar o indicador, o erro "array out of range" começou a ocorrer quando se trabalhava com matrizes dinâmicas.
Não ocorreu antes. O que fazer?