Поделиться через


Предупреждение компилятора (уровень 4) C4564

Метод "method" класса "class" определяет неподдерживаемый параметр по умолчанию "parameter"

Компилятор обнаружил метод с одним или несколькими параметрами со значениями по умолчанию. Значения по умолчанию для параметров будут игнорироваться при вызове метода; явно укажите значения для этих параметров. Если явно не указывать значения для этих параметров, компилятор C++ создаст ошибку.

Учитывая следующую библиотеку DLL, созданную с помощью Visual Basic, которая позволяет использовать параметры по умолчанию для аргументов метода:

' 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

И следующий пример C++, использующий библиотеку DLL, созданную с помощью 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);
}