class A
{
public:
int iValue;
A(){Print("++");}
~A(){Print("--");}
};
//......................
A m_A[2];
void OnStart()
{
A a;
m_A[0] =a;
m_A[1] = new A();
}
Çalıştırın ve yapıcı ve yıkıcının kaç kez ve ne zaman çağrıldığını görün.
m_A[0]=a; bu durumda şuna eşdeğerdir: m_A[0].iValue=a.iValue;
new A(), bu durumda yeni bir nesne oluşturur, buna koşullu olarak temp diyelim ve aşağıdakiler olur: m_A[1].iValue=temp.iValue;
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
eşit olduklarını
eşit olduklarını
Bu görevi unutun.
Bu görevi unutun.
Yani unutmak bana düşmez ama derleyici böyle yazmaya izin vermemeli .
Ve şu anda sadece derlemekle kalmıyor, aynı zamanda hatasız çalışıyor!
Yani unutmak bana düşmez ama derleyici böyle yazmaya izin vermemeli .
Ve şu anda sadece derlemekle kalmıyor, aynı zamanda hatasız çalışıyor!
Derleyici izin verir çünkü ne yaptığınızı anlarsanız mümkündür.
class A { public: int iValue; A(){Print("++");} ~A(){Print("--");} }; //...................... A m_A[2]; void OnStart() { A a; m_A[0] =a; m_A[1] = new A(); }Çalıştırın ve yapıcı ve yıkıcının kaç kez ve ne zaman çağrıldığını görün.
m_A[0]=a; bu durumda şuna eşdeğerdir: m_A[0].iValue=a.iValue;
new A(), bu durumda yeni bir nesne oluşturur, buna koşullu olarak temp diyelim ve aşağıdakiler olur: m_A[1].iValue=temp.iValue;
Çalıştırın ve yapıcı ve yıkıcının kaç kez ve ne zaman çağrıldığını görün.
m_A[0]=a; bu durumda şuna eşdeğerdir: m_A[0].iValue=a.iValue;
Bu örnekte, ikinci satır doğru değil.
Bir nesneye işaretçi kaydedemezsiniz. Derleyici bunu fark etmez.
Bu örnekte, ikinci satır doğru değil.
Bir nesneye işaretçi kaydedemezsiniz. Derleyici bunu fark etmez.
Çalıştırın ve yapıcı ve yıkıcının kaç kez ve ne zaman çağrıldığını görün.
m_A[0]=a; bu durumda şuna eşdeğerdir: m_A[0].iValue=a.iValue;
new A(), bu durumda yeni bir nesne oluşturur, buna koşullu olarak temp diyelim ve aşağıdakiler olur: m_A[1].iValue=temp.iValue;
Muhtemelen yapıcı 3, yıkıcı 2. Gerisi doğru.
ve aşağıdakiler gerçekleşir: m_A[1].iValue=temp.iValue;
Bu zaten 4. yorum!
O zaman neden çıkışta silme çağrısı yapması gerekiyor? Geçici bir nesne için mi?
Bu zaten 4. yorum!
O zaman neden çıkışta silme çağrısı yapması gerekiyor? Geçici bir nesne için mi?