*'nin (daha önce dile getirilmeyen) girişi için temel bir argüman şu olabilir:
class A { public :
virtualbooloperator ==( A& ) { Print ( __FUNCSIG__ ); returntrue ; }
virtualbooloperator ==( A* ) { Print ( __FUNCSIG__ ); returntrue ; }
};
void today( A *a, A *b )
{
a == b; //сравниваются указатели на равенство
a. operator ==( b ); //вызывается a.operator( A* )//нет синтаксиса вызова a.operator( A& )
}
bu nedenle a.operator( A& ) açıkça bile çağrılamaz, ki bu çok önemlidir
Bu bağlamda, işaretçi karşılaştırma işleminin ayrı bir işleve (muhtemelen bir sistem işlevine) kaldırılmasıyla birlikte *'nin eklenmesi, mevcut tüm belirsizlikleri çözecektir.
void future( A *a, A *b )
{
a == b; //вызывается a.operator( A* )
a == *b; //вызывается a.operator( A& )
::IsEqualPointer( a, b ); //сравниваются указатели на равенство
}
Optimaldi - mükemmel olacak!
Operatörler *(Dereference/Inderection) ve &(Address-of) eklendi, dilde ek bir değişiklik yapılmayacak/planlanmayacak
A *a,*b;
a== b; // сравнение "указателей"
*a== b; // вызов оператора ==(A *)
a==*b; // вызов оператора ==(A &)// для операции != аналогично
// операция & - эквивалент(короткая запись) вызову GetPointer
Mülkiyetin tanıtılması olasılığı hakkında bilgi edinmek istiyorum ( sınıfın bir üyesi olarak ). Son zamanlarda böyle bir soru soruldu, ancak geliştiricilerden herhangi bir yorum gelmedi. Bu planlı mı, yoksa bu özelliğe olan talep hakkında forumda bir anket yapmalı mıyım?
Alexey Navoykov : Mülkiyetin tanıtılması olasılığı hakkında bilgi edinmek istiyorum ( sınıfın bir üyesi olarak ). Son zamanlarda böyle bir soru soruldu, ancak geliştiricilerden herhangi bir yorum gelmedi. Bu planlı mı, yoksa bu özelliğe olan talep hakkında forumda bir anket yapmalı mıyım?
İşte başka bir rahatsızlık. Böyle bir şeyi uygulamaya çalıştığımızda:
a.b().c().d();
daha sonra ilk parantez çiftinden sonra, sınıf üyelerinin adlarını içeren otomatik ikame açılır listesinin görünmesi sona erer ve diğer tüm metinler tamamen elle / kör olarak yazılmalıdır.
Alexey Navoykov : İşte başka bir rahatsızlık. Böyle bir şeyi uygulamaya çalıştığımızda:
daha sonra ilk parantez çiftinden sonra, sınıf üyelerinin adlarını içeren otomatik ikame açılır listesinin görünmesi sona erer ve diğer tüm metinler tamamen elle / kör olarak yazılmalıdır.
tüm gelişmiş IDE'lerde olduğu gibi, hata ayıklayıcıyı kullanılan değişkenin bir tür ipucuyla desteklemek fena olmaz
boolFileIsExist( const dizedosya_adı,// dosya adı intcommon_flag=0// arama alanı );
Kontrol edilen dosya bir alt dizin olabilir. Bu durumda, FileIsExist() işlevi false döndürür ve _LastError değişkeni 5018 - "Bu bir dosya değil, bir dizindir" hatasına ayarlanır ( FileFindFirst işlevi örneğine bakın).
Soru farklı: Forex arbitrajı mümkün mü?
bu nedenle a.operator( A& ) açıkça bile çağrılamaz, ki bu çok önemlidir
Bu bağlamda, işaretçi karşılaştırma işleminin ayrı bir işleve (muhtemelen bir sistem işlevine) kaldırılmasıyla birlikte *'nin eklenmesi, mevcut tüm belirsizlikleri çözecektir.Optimaldi - mükemmel olacak!Operatörler *(Dereference/Inderection) ve &(Address-of) eklendi, dilde ek bir değişiklik yapılmayacak/planlanmayacak
*(Dereferans/Çıkarma) ve &(Adres-of) operatörleri eklendi
Operatörler *(Dereference/Inderection) ve &(Address-of) eklendi, dilde ek bir değişiklik yapılmayacak/planlanmayacak
Sadece MQL5'te mi yoksa MQL4'e de eklendi mi?
Mülkiyetin tanıtılması olasılığı hakkında bilgi edinmek istiyorum ( sınıfın bir üyesi olarak ). Son zamanlarda böyle bir soru soruldu, ancak geliştiricilerden herhangi bir yorum gelmedi. Bu planlı mı, yoksa bu özelliğe olan talep hakkında forumda bir anket yapmalı mıyım?
daha sonra ilk parantez çiftinden sonra, sınıf üyelerinin adlarını içeren otomatik ikame açılır listesinin görünmesi sona erer ve diğer tüm metinler tamamen elle / kör olarak yazılmalıdır.
İşte başka bir rahatsızlık. Böyle bir şeyi uygulamaya çalıştığımızda:
daha sonra ilk parantez çiftinden sonra, sınıf üyelerinin adlarını içeren otomatik ikame açılır listesinin görünmesi sona erer ve diğer tüm metinler tamamen elle / kör olarak yazılmalıdır.
bool FileIsExist (
const dize dosya_adı , // dosya adı
int common_flag=0 // arama alanı
);
Kontrol edilen dosya bir alt dizin olabilir. Bu durumda, FileIsExist() işlevi false döndürür ve _LastError değişkeni 5018 - "Bu bir dosya değil, bir dizindir" hatasına ayarlanır ( FileFindFirst işlevi örneğine bakın).
5018, alt klasörlerde/ alt dizinlerde çalışmıyor
örneğin eğer
ve https://www.mql5.com/ru/docs/files/filefindfirst örneğinde
o zaman sonuç
ve 1 olmalıdır: Dizin = Dir2\