Höyükte OOP hakkında konuşun - sayfa 8

 
Maxim Dmitrievsky :

muhtemelen bu kodu neredeyse anlamıyorum çünkü :)

üzgünüm, amatör programcı .. sadece temel düzeyde OOP'ye aşina

Demek anlamayan bir tek sen değilsin, bir tek sen değilsin... Etkilenemeyeni Makro'ya sokmak için kullanılan bu tarzın avantajları ve dezavantajları var. Fark ettiğim kadarıyla, fxsaber'ın meslektaşı sadece avantajlar gösteriyor (esneklik, platformlar arası, vb.). Ve böyle bir kodun Hata Ayıklayıcı'da kontrol edilememesi gerçeği, nasıl? Eh, bu tarzın okunabilirliği oldukça tartışmalıdır. Ama dedikleri gibi, usta ustadır ...

 
Комбинатор :
C++'da sınıf ve yapı aynıdır, sadece bazı varsayılanlar farklıdır.

bir ug için, yapı üzerinde işaretçi nasıl alınır?

 
Vasiliy Sokolov :

Bu yüzden doğru örneklerden öğrenmeniz gerekiyor. Ama SB'de yoklar. Aynı CObject'i alın - tür kontrolü sağlamaz, nesnelerle arayüz düzeyinde çalışma sağlamaz , ancak pratikte hiçbir zaman yeniden tanımlanmayan Save () ve Load () gibi anlamsız yöntemler içerir. m_prev ve m_next işaretçileri tek bir CList sınıfında kullanılır, ancak tüm alt sınıflar için balast olarak bulunur. En kullanışlısı Comparer() yöntemidir. Gerçekten de, çoğu zaman geçersiz kılınır. Ama iyi bir şekilde Comparer() bir arayüzdür, onu CObject içinde değil, ayrı bir sınıf olarak tanımlamak daha doğru olur.

Kontrol hakkında lütfen açıklayın, anlamadım. Hangi nesnelerle? Genellikle alanları ve yöntemleri olmayan kukla bir sınıf olmalıdır. Tek amacı, diğer sınıflar için ortak bir ata sağlamaktır. Geliştiricilerin çöpü oraya koyması büyük bir hata.

Ve herhangi bir Karşılaştırma olmamalıdır. Bu bir kukla sınıf olmalı.

 
Alexey Volchanskiy :

Kontrol hakkında lütfen açıklayın, anlamadım. Hangi nesnelerle? Genellikle alanları ve yöntemleri olmayan kukla bir sınıf olmalıdır. Tek amacı, diğer sınıflar için ortak bir ata sağlamaktır. Geliştiricilerin çöpü oraya koyması büyük bir hata.

Ve herhangi bir Karşılaştırma olmamalıdır. Bu bir kukla sınıf olmalı.

Bu SmallTalk değil, tüm pratik (ve teori de), Adem'den bir nesne ağacı türetmenin kötü bir kötülük olduğunu göstermiştir. Üstelik buna ST için izin verilir, kendi suyunda (sanal makinesinde) demlenir.

ısıtmaya bakılırsa, 8 Mart'a kadar deneme-yakala-atmayı bekliyoruz ?? :-)Tabiki bayram bayanlara olacak ama içmemek günah olur

 
Maxim Kuznetsov :

Bu SmallTalk değil, tüm pratik (ve teori de), Adem'den bir nesne ağacı türetmenin kötü bir kötülük olduğunu göstermiştir. Üstelik buna ST için izin verilir, kendi suyunda (sanal makinesinde) demlenir.

ısıtmaya bakılırsa, 8 Mart'a kadar deneme-yakala-atmayı bekliyoruz ?? :-)Tabiki bayram bayanlara olacak ama içmemek günah olur


Hayır, tatil olmayacak, dedi Renat - istisna yok. https://www.mql5.com/en/forum/168361 konusuna bakın, sonra birisi onu en üste çıkardı. Eksepsheny'nin planlanıp planlanmadığını veya nasıl olduğunu merak ediyordum. Ne yazık ki, cevap hayırdı.

Ama falan, derleyicide önemli bir küçük karga belirdi - bölenleri kontrol edin))))) pipetler. 8 Mart'a kadar "dizi sınırların dışında olup olmadığını kontrol edin..." onay kutusunu ve ardından benzer onay kutularına sahip 25 sayfa daha bekliyoruz. Sonuçta, eksepsheny pişirmeyi bilmiyoruz.

ZY: C#'daki Object temel sınıfına baktı, ayrıca minimum. msdn'den resim


Почему в MQL5 нет исключений?
Почему в MQL5 нет исключений?
  • 2017.01.29
  • www.mql5.com
Не нужны, надо все условия руками проверять, по старинке оно надежнее Нужны, почему нет - не знаю А что это такое? Хочу посмотреть...
 
Dennis Kirichenko :

Demek anlamayan bir tek sen değilsin, bir tek sen değilsin... Etkilenemeyeni Makro'ya sokmak için kullanılan bu tarzın avantajları ve dezavantajları var. Fark ettiğim kadarıyla fxsaber'ın meslektaşı sadece avantajlar gösteriyor (esneklik, çapraz platform, vb.). Ve böyle bir kodun Debugger'da kontrol edilememesi gerçeği, nasıl oluyor? Eh, bu tarzın okunabilirliği oldukça tartışmalıdır. Ama dedikleri gibi, usta ustadır ...

Neden belirli bir örneğe içinde olmayanı atfedelim?

Maksim Dmitrievski :

aynı şekilde hangi kalıpları programlamayı öğrenebilirsiniz? :) çok güzel görünüyor

Kendi kendini yetiştirmiş, bu yüzden hiçbir yerde görülmedi. Tupolev yaklaşımına sahibim: "Yalnızca güzel uçaklar iyi uçar!"

 
Maxim Kuznetsov :

Bu SmallTalk değil, tüm pratik (ve teori de), Adem'den bir nesne ağacı türetmenin kötü bir kötülük olduğunu göstermiştir. Üstelik buna ST için izin verilir, kendi suyunda (sanal makinesinde) demlenir.

ısıtmaya bakılırsa, 8 Mart'a kadar deneme-yakala-atmayı bekliyoruz ?? :-)Tabiki bayram bayanlara olacak ama içmemek günah olur


Boş bir temel sınıfın amacı, böyle bir şey yazabilmemizdir. Hemen örneğin bir yük taşımadığını söylüyorum, hareket halindeyken buldum. Mesele şu ki, türetilmiş herhangi bir sınıfı CObject*'e çevirebiliriz.

CObject* objarr[ 12 ];

void OnStart ()
{
    objarr[ 0 ] = new CAccountInfo;
     // еще что-то подобное, кладем в массив указатели на объекты абсолютно разных классов, но с одним предков
    objarr[ 11 ] = new CDealInfo;
     // обращаемся и работаем
    CAccountInfo * ai = (CAccountInfo*)objarr[ 0 ];
     //
    
     for ( int n = 0 ; n < 12 ; n++)
         if ( CheckPointer (objarr[n]) == POINTER_DYNAMIC )
             delete objarr[n];
       
}

*

 
Alexey Volchanskiy :

bir ug için, yapı üzerinde işaretçi nasıl alınır?

dürüstçe soruyu anlamadım, ama her durumda sınıfla aynı
 
Комбинатор :
dürüstçe soruyu anlamadım, ama her durumda sınıfla aynı

Çok üzgünüm, hangi dil bağlamında böyle bir sonuca varıyorsunuz? :-)



 
Комбинатор :
dürüst olmak gerekirse, soruyu anlamadım, ama her durumda, sınıfla aynı

 class C {};
struct S {};

void OnStart ()
{
    C *_c = new C; // так можно
    S *_s = new S; // указатели на структуру не допускаются 
}