böyle tanımlanan sınıf iki kurucular ile foo
düşünün:C++'da işaretçilerden bool'e neden dolaylı bir tür dönüşüm var?
class foo
{
public:
foo(const std::string& filename) {std::cout << "ctor 1" << std::endl;}
foo(const bool some_flag = false) {std::cout << "ctor 2" << std::endl;}
};
bir dize ile sınıf örneğini ve denir yapıcı tahmin?
foo a ("/path/to/file");
Çıktı:
seni bilmem ama ben programlama tarihinin en sezgisel davranış olduğunu bulmuyorum 2 ctor. Bahse girerim bunun için akıllıca bir sebep var ve bunun ne olabileceğini bilmek isterim.
olası yinelemesi [Neden derleyici, L örtülü tipte yazım için boole over dizisini seçer? ”(Http://stackoverflow.com/questions/316181/why-does-the-compiler-choose-bool-over -string-for-implicit-typecast-of-l) – Hasturkun
Yine başka bir benzer soru: [İşlev/Yöntem Aşırı yükleme C++: Veri türü karışıklık?] (http://stackoverflow.com/questions/1636181/function-method-overloading- c-data-type-confusion) – Athari
Üzgünüz. Arama yaptım (bir SSS olacağını düşündüğüm gibi), ama sorunun bu konuyla ilgili olduğunu ima eden bir başlık ile herhangi bir soru bulamadım. – Oystein