Hatalar, hatalar, sorular - sayfa 1920

 
fxsaber :

"Ata" korumalı/özel alanları görmemelidir.

Ve ortak alanlar: yapmalı/yapmamalı mı?

birleştirici :

eklerseniz

yapıB;

etkilemez
 
A100 :

Ve halka açık: yapmalı/yapmamalı mı?

genel statik alan - gerekli.
 
fxsaber :
genel statik alan - gerekli.
Özetlemek gerekirse: Temel sınıf, türetilmiş sınıfın statik olmayan alanlarını görmez. Aynı zamanda, temel sınıf türetilmiş sınıfın korumalı statikini görmez, ancak genel statik olanı görür. Bu kuralı kendin mi koydun?
 
A100 :
Özetlemek gerekirse: Temel sınıf, türetilmiş sınıfın statik olmayan alanlarını görmez. Aynı zamanda, temel sınıf türetilmiş sınıfın korumalı statikini görmez, ancak genel statik olanı görür. Bu kuralı kendin mi koydun?

Bu tür genellemelerin nereden geldiğini söylemek benim için zor. Kendim demek istemedim.

Herhangi bir sınıf, diğer herhangi bir sınıfın genel statik alanlarını/yöntemlerini görür.

Temel sınıf, korumalı/özel (statik - önemli değil) türetilmiş alanları/yöntemleri (genel kalıtım) asla görmez.

Türetilmiş sınıf (genel kalıtım) hiçbir zaman temel sınıfın özel alanlarını/yöntemlerini görmez, ancak her zaman - korumalı/genel görür.

 
fxsaber :

Herhangi bir sınıf, diğer herhangi bir sınıfın genel statik alanlarını/yöntemlerini görür.

Sonuç olarak, soru şu şekilde özetlenebilir: Türetilmiş sınıfın genel statik alanlarının/yöntemlerinin temel sınıfta MQL'de mevcut olduğu doğru mu?
 
A100 :
Sonuç olarak, soru şu şekilde özetlenebilir: Türetilmiş sınıfın genel statik alanlarının/yöntemlerinin temel sınıfta MQL'de mevcut olduğu doğru mu?

Bu, yalnızca temel/türetilmiş durum için değil, genel olarak herhangi bir sınıf için geçerlidir.

 
fxsaber :

Bu, yalnızca temel/türetilmiş durum için değil, genel olarak herhangi bir sınıf için geçerlidir.

Soru birdenbire ortaya çıkmadı.

 #ifdef __cplusplus
struct B;
struct A {
         int f() { return B::i; } //error E2451
};
struct B : A {
        static int i;
};
int B::i;
#endif
ve bu nedenle detaylı inceleme gerektirir.
 
fxsaber :

Herhangi bir sınıf, diğer herhangi bir sınıfın genel statik alanlarını/yöntemlerini görür.

... dahil temel. Bu, MQL'de aşağıdaki çelişkiye yol açar

 struct A {
         static int i;
};
int A::i;
struct B : private A {};
struct C : B {
        C() { Print ( A::i ); } //error: 'i' - private member access error
};
C++ hata yok
 
A100 :

C++'da, varsayılan olarak, yapılardaki üyeler geneldir, mql'de bunlar özeldir, tıpkı sınıflarda olduğu gibi.

Evet, yanılmışım, C++'daki ileri bildirim yeterli değil, bir tanıma ihtiyacınız var

 
A100 :

... dahil temel. Bu, MQL'de aşağıdaki çelişkiye yol açar

C++ hata yok

Evet, bu bir MQL özel kalıtım hatasıdır.