template < typename T> void F(T)
{
class A
{
void f() { new A; } // 'A' - declaration without typevoid g() { A* a; } // 'A' - pointer to this function type is not supported yet
};
};
voidOnStart ()
{
F( 0 );
}
Ayrıca işaretçi dökümünde çok akıllıca bir şey vardı.
Aşağıdaki kod derlenmiyor:
class A
{
};
class B : protected A
{
};
voidOnStart ()
{
A* a;
B* b= (B*)a; // conversion from 'B *' to 'A *' is not accessible because of inheritance access
}
oyuncu kadrosu açık olmasına rağmen. Her şey C++'da çalışır.
C++ bu kodu reinterpret_cast'e ve MQL'yi dynamic_cast'e dönüştürür. Ve anladığım kadarıyla, bu tam olarak derleyicinin derleme sırasında bir hoparlör hatası bulabildiği durumdur.
reinterpret_cast bu durumda gayri meşrudur, bu nedenle bu kodun C++ ile derlenmesi bir argüman değildir.
C++ bu kodu reinterpret_cast'e ve MQL'yi dynamic_cast'e dönüştürür. Ve anladığım kadarıyla, bu tam olarak derleyicinin derleme sırasında bir hoparlör hatası bulabildiği durumdur.
reinterpret_cast bu durumda gayri meşrudur, bu nedenle bu kodun C++ ile derlenmesi bir argüman değildir.
Bekle, neden her şeyi birbirine karıştırıyorsun? Ve konuşmacı kadrosu burada mı? Derleyicinin görevleri arasında Sherlock Holmes oynamak ve program mantığında bir şeyler aramak yer almaz. Dil standardına uygunluğun yalnızca resmi bir kontrolünü gerçekleştirir, başka bir şey değil. Ve standart açısından, benim için her şey doğru.
Üstelik buradaki nokta hiç de kadroda değil. Örneğime dikkatlice bakarsanız, oradaki sorunun korumalı ile ilgili olduğunu görürsünüz. Bunu public ile değiştirirseniz, her şey yolunda demektir. Nesnenin kendisi değişmez. Onlar. MQL derleyicisinde bu sadece gereksiz bir sınırlamadır, hepsi bu.
Öyleyse spekülasyon yapmayın ve açıkça var olmadığı yerde gizli bir anlam aramayın. Ve sadece banal derleyici hatası var.
Derleme Hatası:
İşte birkaç hata daha:
Ayrıca işaretçi dökümünde çok akıllıca bir şey vardı.
Aşağıdaki kod derlenmiyor:
oyuncu kadrosu açık olmasına rağmen. Her şey C++'da çalışır.
Ayrıca işaretçi dökümünde çok akıllıca bir şey vardı.
Bu doğru, derleyici yemin ediyor
dynamic_cast, static_cast ve reinterpret_cast hakkında ve bunların ne zaman doğru ve ne zaman kullanılmayacağını okuyun.
C++ bu kodu reinterpret_cast'e ve MQL'yi dynamic_cast'e dönüştürür. Ve anladığım kadarıyla, bu tam olarak derleyicinin derleme sırasında bir hoparlör hatası bulabildiği durumdur.
reinterpret_cast bu durumda gayri meşrudur, bu nedenle bu kodun C++ ile derlenmesi bir argüman değildir.
C++ bu kodu reinterpret_cast'e ve MQL'yi dynamic_cast'e dönüştürür. Ve anladığım kadarıyla, bu tam olarak derleyicinin derleme sırasında bir hoparlör hatası bulabildiği durumdur.
reinterpret_cast bu durumda gayri meşrudur, bu nedenle bu kodun C++ ile derlenmesi bir argüman değildir.
Bekle, neden her şeyi birbirine karıştırıyorsun? Ve konuşmacı kadrosu burada mı? Derleyicinin görevleri arasında Sherlock Holmes oynamak ve program mantığında bir şeyler aramak yer almaz. Dil standardına uygunluğun yalnızca resmi bir kontrolünü gerçekleştirir, başka bir şey değil. Ve standart açısından, benim için her şey doğru.
Üstelik buradaki nokta hiç de kadroda değil. Örneğime dikkatlice bakarsanız, oradaki sorunun korumalı ile ilgili olduğunu görürsünüz. Bunu public ile değiştirirseniz, her şey yolunda demektir. Nesnenin kendisi değişmez. Onlar. MQL derleyicisinde bu sadece gereksiz bir sınırlamadır, hepsi bu.
Öyleyse spekülasyon yapmayın ve açıkça var olmadığı yerde gizli bir anlam aramayın. Ve sadece banal derleyici hatası var.