Aşırı yüklenicinin, aşağıdaki kodda olduğu gibi sınıfta başka bir kurucu çağırması mümkün mü?C++ 'da bir kolaylık kurucu var mı?
class A {
public:
A(std::string str) : m_str(str) {}
A(int i) { *this = std::move(A(std::to_string(i))); }
std::string m_str;
};
Yukarıdaki kod çalışır, ama ben yapıcı bu çağırarak istenmeyen davranışlara yol diye korkuyorum.
Eğer bunun nedenini açıklayabilir ve daha iyi bir alternatif önerebilir misiniz?
Aradığınız terim "temsilci kurucular" dir. – nwp
Niçin A değil (int i): m_str (std :: to_string (i)) {} '? – CoryKramer
Bu en az bir örnektir. 7 parametresini kabul eden bir kurucuya aşırı yüklenmek istiyorum, bunlardan 4 tanesi varsayılan değerlere sahip ve varsayılanları açık bir şekilde birden fazla yere yerleştirmekten kaçınmak istiyorum. – Makaronodentro