Compartir a través de


Advertencia del compilador (nivel 4) C4564

el método "method" de la clase "class" define el parámetro predeterminado no admitido "parameter"

El compilador detectó un método con uno o varios parámetros con valores predeterminados. Los valores predeterminados de los parámetros se omitirán cuando se invoque el método; especifique valores explícitamente para esos parámetros. Si no especifica explícitamente valores para esos parámetros, el compilador de C++ generará un error.

Dado el archivo .dll siguiente creado con Visual Basic, que permite parámetros predeterminados en 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

Y el ejemplo de C++ siguiente que usa el archivo .dll creado con 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);
}