Değişkenler, C++ ' daki üç nokta işlevlerinde işlev çağrısında kullanılabilir mi

0

Soru

Değişken sayıda bağımsız değişken alan bu işlev için,

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

Aşağıdaki gibi bir işlev çağrısı yapılabilir mi :

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

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

Sorum şu ki, bir üç nokta işlevi çağrıldığında her zaman sadece olması gerekiyor mu fixed gibi değerler func(3,5,2.7,"Hi") veya değişkenler işlev çağrısında böyle sağlanabilir mi func(3,a,b,c)?

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

En iyi cevabı

3

Sınıfları geçmenin aşağıdaki gibi olduğunu unutmayın std::string, önemsiz olmayan kopya oluşturucu veya önemsiz olmayan taşıma oluşturucu veya önemsiz olmayan yıkıcı ile desteklenmeyebilir ve" uygulama tanımlı " semantiği vardır. Bu tür sınıfların nasıl geçirildiğine ilişkin derleyici belgelerinizi denetlemeniz veya bunların desteklenip desteklenmediğini denetlemeniz gerekir.

Değişkenler, C++ ' daki üç nokta işlevlerinde işlev çağrısında kullanılabilir mi

Evet.

Aşağıdaki gibi bir işlev çağrısı yapılabilir mi

Evet.

üç nokta işlevi çağrıldığında, her zaman func(3,5,2.7,"Hi")gibi sabit değerler olması gerekir mi

Hayır.

değişkenler işlev çağrısında so func(3,a,b,c) gibi sağlanabilir mi?

Evet.

Bu konuda biraz araştırma yapabilmem için herhangi bir referans önerebilir misiniz?

https://en.cppreference.com/w/cpp/language/variadic_arguments https://en.cppreference.com/w/cpp/utility/variadic https://eel.is/c++taslak / açıklama # çağrı-12

Ve C ++ ' da şiddetle tercih etmelisiniz: https://en.cppreference.com/w/cpp/language/parameter_pack .tip güvenliği nedeniyle.

2021-11-24 07:01:52
0

Üç nokta bize bazı kullanışlı işlevler sunsa da, bunları kullanmak oldukça tehlikelidir. Üç nokta kullanırken, derleyici işleve geçirilen bağımsız değişkenlerin türünü denetlemez. Bu nedenle, bağımsız değişkenler farklı türdeyse derleyici herhangi bir hata atmaz. Döndürdüğü average() işlevine pass string, double veya bool türü değerleri iletilse bile beklenmeyen bir değer döndürür, derleyici herhangi bir hata atmaz.

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

2021-11-24 06:56:15

Bu işe yaramıyor!
Pratap Biswakarma

Diğer dillerde

Bu sayfa diğer dillerde

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