Peut variables utilisées dans les appels de fonction dans les points de suspension de fonctions en C++

0

La question

Pour cette fonction qui prend un nombre variable d'arguments,

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

Peut un appel de fonction, être effectué comme suit :

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

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

Ma question est de savoir quand un bouton de sélection de fonction s'appelle t-elle toujours juste fixed des valeurs comme func(3,5,2.7,"Hi") ou peut variables est fourni dans l'appel de fonction comme func(3,a,b,c)?

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

La meilleure réponse

3

Notez que le passage des classes comme std::stringavec la non-trivial constructeur de copie ou non trivial constructeur de déplacement ou de non-trivial destructeur, ne peuvent pas être pris en charge et a "la mise en œuvre définies par la sémantique. Vous devez vérifier avec votre compilateur de la documentation sur la façon dont ces classes sont passé ou de vérifier s'ils sont pris en charge à tous.

Peut variables utilisées dans les appels de fonction dans les points de suspension de fonctions en C++

Oui.

Peut un appel de fonction, être effectué comme suit

Oui.

lorsqu'un bouton de sélection de fonction s'appelle t-il toujours à des valeurs fixes comme func(3,5,2.7,"Hi")

Pas de.

peut variables est fourni dans l'appel de fonction comme func(3,a,b,c)?

Oui.

Pouvez-vous suggérer de toute référence afin que je puisse faire quelques recherches sur elle?

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

Et en C++, il est fortement préférez: https://en.cppreference.com/w/cpp/language/parameter_pack parce que le type de sécurité.

2021-11-24 07:01:52
0

Si les points de suspension nous donne quelques fonctions utiles, il est très dangereux de les utiliser. Lors de l'utilisation des points de suspension, le compilateur ne vérifie pas le type d'arguments passés à la fonction. Ainsi, le compilateur ne jetez pas d'erreur si des arguments sont de différents types. Même si passer chaîne, double, bool type de valeurs sont passées à la moyenne() la fonction retourne retourner une valeur inattendue, le compilateur ne génère pas d'erreur.

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

2021-11-24 06:56:15

Cela n'aide pas!
Pratap Biswakarma

Dans d'autres langues

Cette page est dans d'autres langues

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