Aşağıdaki örnekte hangi dönüştürme işlevi çağrılmalıdır? Neden diğeri üzerinde seçilmeli?Bir katkı ifadesinin ilk işleneni hem işaretçi hem de tamsayıya dönüştürülebilirse, hangi dönüşüm seçilir?
struct A
{
operator int();
operator int*();
};
A x;
int i = x + 1;
derleyici operator int()
seçer .. ama neden? İşte
itibaren
ya her iki işlenen aritmetik veya numaralandırma türünü sahip olacaktır, ya da bir işlenen bir olacaktır Tamamen tanımlanmış bir nesne tipine ve diğerine işaretçi entegre veya numaralandırma tipine sahip olmalıdır. Birkaç bağlamlarda [dönüşüm] Belirli bir tip
:ifadeler örtük diğer türleri dönüştürülecektir itibaren
- operatörlerin işlenen olarak kullanıldığında. işlenenlerinden için operatörün gereksinimleri hedef türü dikte
Bunun muğlak olması gerektiğini savunuyorum. Düşünmüyorum * işaretsizler artık daha özel. – chris
Eğer int * i = x + 1; 'derken diğerini çağırır mı? – John
@John, Hayır, sadece int -> int * 'hakkında şikayet ediyor. – chris