Şablon parametreli derleyici hatası = void* - sayfa 18

 
Igor Makanu :

Şimdi benim için sıradan görev, formu .dll'de MT5'e zarif bir şekilde VS ile tutturmak istiyorum))) - Düğme tıklama işleyicilerini bir sınıfa sarmak ve işaretçi dizisini atlayarak onları çağırmak istiyorum işleyici işlev görür ve ana EA kodunda f adlarını VS'de olduğu gibi bire bir yazma becerisini elde etmek istiyorum, yani. button2_Click() ....button2_Click()

Not: ÇOP alanından bir görev)))

Alınma ama bana çok şey hatırlattı:


1
 
Ilya Malev :

- Dinamik OOP içinde otomatik yapılar oluşturmak saçmalık

Onlar. yığın nesneleri: sınıfım nesnesi; - saçmalık? Yani ben bir tamirciyim :)

 
pavlick_ :

Onlar. yığın nesneleri: sınıfım nesnesi; - saçmalık? Yani ben bir tamirciyim :)

Görevler farklıdır. Uzun süre retorik uygulayabilirsiniz, belirli görevleri tanımlamazsanız, her şeye gelebilirsiniz ...

Evet, "yığın" (otomatik mi demek istiyorsunuz?) nesneler çoğunlukla anlamsızdır. Benim naçizane görüşüme göre, ki bu hiçbir şekilde gerçek değildir ve hatta son çare olarak da öyle değildir...
 
Soytarı, OOP'nin ana işlevini yerine getirmeyen bir nesneye ihtiyaç duyuyor -polimorfizmin özelliği? İçeriğe bağlı olarak farklı özelliklere sahip olan böyle bir değişkene herhangi bir nesne atamazsınız. Listedeki bu "değişkeni" başka bir nesneyle eşleştiremezsiniz. Sizin için genel olarak nesneler ne için gereklidir, yapılarla sınırlı olmak daha iyi olabilir mi? µl'deki yapılar kendilerine referansları geri getiremedikleri sürece ... Ve onlarla birlikte sürekli yaratma-yıkma-kendi kendini kopyalama, vb. ile karanlık bir tortu başlar.
 
Ilya Malev :
Soytarı, OOP'nin ana işlevini yerine getirmeyen bir nesneye ihtiyaç duyuyor -polimorfizmin özelliği? İçeriğe bağlı olarak farklı özelliklere sahip herhangi bir nesneyi böyle bir değişkene atamazsınız. Listedeki bu "değişkeni" başka bir nesneyle eşleştiremezsiniz. Sizin için genel olarak nesneler ne için gereklidir, yapılarla sınırlı olmak daha iyi olabilir mi? µl'deki yapılar kendilerine referansları geri getiremedikleri sürece ... Ve onlarla birlikte sürekli yaratma-yıkma-kendi kendini kopyalama, vb. ile karanlık bir tortu başlar.

Polimorfizm olmadan nasıl yaşanır ... Ve eğer polimorfizmden vakaların > %90'ında vazgeçilebileceğini söylersem? Burada, "SOLID bağımlılığı tersine çevirme ilkesini" alın, derler, eğer iyi programcılarsak, o zaman her yerde soyutlamalar, sanal yöntemler (elbette yüksek ek yük gerektirir) oluşturmamız gerekir. C# ustaları böyle bir şey yazardı https://pro-prof.com/forums/topic/dependency-inversion-principle . Veya şablonları alıp şöyle bir şey yazabilirsiniz:

class Lamp {
public:
    void activate();
    void deactivate();
};
template <typename T>
class Button {
    Button(T& switchable)
        : _switchable(&switchable) {
    }
    void toggle() {
        if (_buttonIsInOnPosition) {
            _switchable->deactivate();
            _buttonIsInOnPosition = false;
        } else {
            _switchable->activate();
            _buttonIsInOnPosition = true;
        }     
    }
private:
   bool _buttonIsInOnPosition{false};
   T* _switchable; 
}
int main() {
   Lamp l;
   Button<Lamp> b(l)

   b.toggle();
}


Düğme ayrıca herhangi bir polimorfizm ve arayüz olmadan ayrıntılara bağlı değildir. Polimorfizmin kendi nişi vardır, ancak söylediklerinden çok daha dardır.

Not: peki, kimse yasaklamıyor:

derived1 obj1;
baseclass *p1 = &obj1;
derived2 obj2;
baseclass *p2 = &obj2;
pass_through_generalized_algoritm(p1);
pass_through_generalized_algoritm(p2);
 
Tabii ki, polimorfizm olmadan yapabilirsiniz, ancak bu durumda nesneleri değil, basit yapıları kullanmak çok daha dürüst ve mantıklı, aksi takdirde bir mikroskopla çivi çakıyoruz. Daha doğrusu, μl5 durumunda, nesne olmayan yapıların tam kullanımına izin vermeyen "uygulama özelliklerini" atlamayı tercih ediyoruz (nesnelerin aksine işaretçileri onlara iletmenin imkansızlığı). Bu tamamen farklı bir görev, bu artık OOP değil, sadece OP
 
pavlick_ :

Not: peki, kimse yasaklamıyor:

Hiç kimse her türlü koltuk değneğinin ve planın ortaya çıkmasını yasaklamıyor, ama neden? Örneğin: otomatik nesneniz aniden aldığında ve hiç beklemediğiniz bir anda kendini imha ettiğinde eğlenceli olacak, değil mi?

 
OOP'nin amacı, şablonlar veya işlev işaretçileri aracılığıyla da uygulayabileceğiniz, seçtiğiniz bir düğmeye basma yöntemini kullanmak değil, yalnızca kendi kendini organize etmenize izin veren herhangi bir sistem nesnesine liste gibi yöntemleri uygulamaktır. CArrayObj vb. gibi koltuk değneği olmadan yapıları listeleyin ve doğru zamanda rastgele seçimler oluşturun. Seç, Sorgula, Karşılaştır, Sırala, vb. gibi yöntemleri aşırı yükleyerek hemoroidleri ve ilişkili hemoroidleri. (evet, aynı Klonlama/Kopyalama bile, her nesne sizin katılımınız olmadan bir liste/diziye yerleştirilmek için kopyalanması gerekip gerekmediğine ve kopyalanırsa nasıl olduğuna karar verebilir)
 
Ilya Malev :

Hiç kimse her türlü koltuk değneğinin ve planın icat edilmesini yasaklamaz, ama neden? Örneğin: otomatik nesneniz aniden aldığında ve hiç beklemediğiniz bir anda kendini imha ettiğinde eğlenceli olacak, değil mi?

Ardından, yığın nesnesi, yığındaki nesneden ( bellek ayırma ) daha hızlı bir büyüklük sırasıdır. Kendini imha? - bu yeni bir şey :). Ancak bazen elbette gereklidir - örneğin nesnelerin sayısı yalnızca çalışma zamanında bilinir.

Not: Aksi takdirde daha rahat olabilirsiniz, bu kişisel bir meseledir.

 
Ilya Malev :
OOP'nin amacı, şablonlar veya işlev işaretçileri aracılığıyla da uygulayabileceğiniz, seçtiğiniz bir düğmeye basma yöntemini kullanmak değil, yalnızca kendi kendini organize etmenize izin veren herhangi bir sistem nesnesine liste gibi yöntemleri uygulamaktır. CArrayObj, vb. gibi herhangi bir koltuk değneği olmadan yapıları listeleyin ve doğru zamanda rastgele seçimler oluşturun. Seç, Sorgula, Karşılaştır, Sırala, vb. gibi yöntemleri aşırı yükleyerek hemoroidleri ve ilişkili hemoroidleri. (evet, aynı Klonlama/Kopyalama bile, her nesne sizin katılımınız olmadan bir liste/diziye yerleştirilmek için kopyalanması gerekip gerekmediğine ve kopyalanırsa nasıl olduğuna karar verebilir)

Yazdım -polimorfizmin kendi nişi var, tartışmıyorum. Ancak uygulama (en azından kişisel olarak benim) bunun o kadar da önemli olmadığını gösteriyor. Şablonlarla ilgili sorunları çok daha sık çözüyorum.