Partilhar via


Aviso do compilador (nível 4) C4564

o método 'method' da classe 'class' define um parâmetro padrão 'parameter' incompatível

O compilador detectou um método com um ou mais parâmetros com valores padrão. Os valores padrão para os parâmetros serão ignorados quando o método for invocado; especifique explicitamente valores para esses parâmetros. Se você não especificar explicitamente valores para esses parâmetros, o compilador C++ gerará um erro.

Considere o seguinte .dll criado com o Visual Basic, que permite parâmetros padrão em argumentos de método:

' C4564.vb
' compile with: vbc /t:library C4564.vb
Public class TestClass
   Public Sub MyMethod (a as Integer, _
                        Optional c as Integer=1)
   End Sub
End class

E o exemplo C++ a seguir que usa o .dll criado no Visual Basic,

// C4564.cpp
// compile with: /clr /W4 /WX
#using <C4564.dll>

int main() {
   TestClass ^ myx = gcnew TestClass();   // C4564
   myx->MyMethod(9);
   // try the following line instead, to avoid an error
   // myx->MyMethod(9, 1);
}