Pueden ser variables utilizadas en la llamada a la función en puntos suspensivos funciones en C++

0

Pregunta

Para esta función que toma la variable número de argumentos,

void func(int count, ...)  // ellipsis function
{
// function definition
}

Puede una llamada a una función se hace como sigue :

int a{};
double b{};
string c{};

func(3,a,b,c); // using actual variables instead of fixed values in function call

Mi pregunta es cuando los puntos suspensivos se llama a la función no siempre tiene que ser justo fixed valores como la func(3,5,2.7,"Hi") o variables pueden ser suministrados en la llamada a la función, como así func(3,a,b,c)?

c++ ellipsis variadic-functions
2021-11-24 04:59:50
2

Mejor respuesta

3

Tenga en cuenta que pasar de las clases como std::stringcon la no-trivial, constructor de copia o trivial mover constructor o no-trivial destructor, pueden no ser compatibles y que "la aplicación definida por" la semántica. Usted tiene que comprobar su compilador documentación sobre cómo dichas clases se pasan o comprobar si son compatibles en todos.

Pueden ser variables utilizadas en la llamada a la función en puntos suspensivos funciones en C++

Sí.

Puede una llamada a una función se hace como sigue

Sí.

cuando los puntos suspensivos se llama a la función no siempre tiene que ser valores fijos como func(3,5,2.7,"Hola")

No.

pueden ser variables que se suministra en la llamada a la función, como así func(3,a,b,c)?

Sí.

Puedes sugerir alguna referencia para que yo pueda realizar una investigación?

https://en.cppreference.com/w/cpp/language/variadic_arguments https://en.cppreference.com/w/cpp/utility/variadic https://eel.is/c++proyecto/expr#call-12

Y en C++ debe prefiera: https://en.cppreference.com/w/cpp/language/parameter_pack porque de tipo de seguridad.

2021-11-24 07:01:52
0

A pesar de que los puntos suspensivos nos da algunas funciones útiles, es muy peligroso el uso de ellos. Cuando el uso de los puntos suspensivos, el compilador no comprobar el tipo de argumentos pasados a la función. Por lo que el compilador no tira ningún error si los argumentos son de diferentes tipos. Incluso si pase string, double, o de tipo bool que se pasan los valores de la media() función que devuelve devolver un valor inesperado, el compilador no tira ningún error.

Fuente : https://www.geeksforgeeks.org/ellipsis-in-c-with-examples/

2021-11-24 06:56:15

Esto no ayuda!
Pratap Biswakarma

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................