Bir soru daha..
Derleyici (msvc) built-in temporaryleri const olarak oluşturuyor. "
int() = 3 ;"
gibi şeyler yazamıyorum (not an l-value). ıyi güzel hoş ama built-in olmayan, kendi oluşturduğum bi tipte bunu yapmıyor. "
complex() = complex() ;" filan diyebiliyorum. Hatta "
complex const() = complex() ;" de diyebiliyorum.
Çözüm için operator='in bi normal bi const versiyonunu yaptım. ılkini public, ikincisini private yaptığım zaman istediğim gibi çalışıyor. Bu durumda operator='e ihtiyaç duymasam bile (memberwise copy varken) =, +=, -=, *= vs bissürü member oluşturmam gerekiyor (ikişer tane). Kısaca çalışıyor ama şık değil.
Gerçi temporary'nin değiştirilmesi çok büyük bi sorun değil ama öyle bırakınca da bi şeyler eksik gibi hissediyorum.
Not: Sanmıyorum ama compiler hatası da olabilir bu. Çünkü şöyle bi şey kullandığımda çöküyor derleyici.
class A { public: A(int) {} ; } const(0) = 0 ;Bu arada C++'ı tüm forumla birlikte öğreniyorum umarım kızmıyorsunuzdur