MQL5'te OOP hakkında sorular - sayfa 6

 
Dmitry Fedoseev :

İşte burada.

Bunun gibi:

bu sadece mümkün değil, daha da iyisi, çünkü buna şöyle de diyebilirsiniz:

Bir işaretçiyi referans olarak iletirseniz, işaretçi için bir değişkene daha ihtiyacınız olacaktır.

***

Ve fonksiyonda bir nesne yaratmak için fonksiyona bir işaretçi iletmeniz gerekiyorsa, şu şekilde çalışır:

Bu aslında OOP hakkında bilmek istediğiniz, ancak sormaya korktuğunuz her şey)))

nu-nu

 
void z(CObj* & o){
   o = new CObj();
}

Ve aynen böyle, her şey çalışıyor.

Yani, OOP hakkında herhangi bir sorunuz varsa, utanmayın))))

 
Bir boş göstericinin klasik başvurusunu kaldırma işlemi başarılı oldu.
 
Vladimir Simakov :

Yani, OOP hakkında herhangi bir sorunuz varsa, utanmayın))))

Lütfen yeni operatör aracılığıyla dinamik bir nesne oluşturmanın anlamını açıklayın.

Otomatik olarak bir nesne oluştururken, yığın üzerinde bir sınıf nesnesi oluşturulur, yürütme süresi açısından dinamik olandan daha hızlıdır.
Dinamik olarak bir nesne oluştururken, işletim sistemi bellek yöneticisini kullanırken bellekte (yığın üzerinde) bir sınıf nesnesi oluşturulur, işlem daha yavaştır.

İşte sorular:
Otomatik oluşturma daha hızlıysa, dinamik nesneleri kullanmak neden daha iyidir?
Açıkça bellek tahsisini kontrol ediyor musunuz?
Olası bir yığın taşması ekarte edilsin mi?
Ve aniden nesneyi kaybetmez misin?
Yığın taştığından beri nesne otomatik olarak silinecek mi?

 
Roman :


apat konusundan sıkılmadınız mı?

 
Artyom Trishkin :

apat konusundan sıkılmadınız mı?

Maksimum kesin açıklama için düzeltilmiş sorular.
Bunda kötü bir şey var mı? Düzenlemek için bir düğme var, bu fikri belirtmek için kurallar.

 
Roman :

Lütfen yeni operatör aracılığıyla dinamik bir nesne oluşturmanın anlamını açıklayın.

Otomatik olarak bir nesne oluştururken, yığın üzerinde bir sınıf nesnesi oluşturulur, yürütme süresi açısından dinamik olandan daha hızlıdır.
Dinamik olarak bir nesne oluştururken, işletim sistemi bellek yöneticisini kullanırken bellekte (yığın üzerinde) bir sınıf nesnesi oluşturulur, işlem daha yavaştır.

İşte sorular:
Otomatik oluşturma daha hızlıysa, dinamik nesneleri kullanmak neden daha iyidir?
Açıkça bellek tahsisini kontrol ediyor musunuz?
Olası bir yığın taşması ekarte edilsin mi?
Ve aniden nesneyi kaybetmez misin?
Yığın taştığından beri nesne otomatik olarak silinecek mi?

Statik bellek, yığın ve yığın hakkında bir şeyler okuyalım.
 
Roman :

Lütfen yeni operatör aracılığıyla dinamik bir nesne oluşturmanın anlamını açıklayın.

Açık kullanım örneklerinden biri, bir nesnenin türünün önceden bilinmediği zamandır.

Yardımda bu konuyla ilgili güzel bir örnek: https://www.mql5.com/ru/docs/basis/operators/newoperator

Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
//| Создание фигуры                                                  |
 
Vladimir Simakov :

nu-nu

Aha! Ama nedense her şey derlenir ve çalışır.

Orada ne tür mucizeler var... kimse bilmiyor ama bu arada, dünkü kod örneklerinden sonra, bu konuda sözde başka bir yerden alınmış, ancak aslında bir yerde eksik olması şaşırtıcı değil.

***

Evet, ve konuşmanın orijinal olarak ne hakkında olduğunu unutmazsanız - bir işleve veya yönteme bir işaretçi iletmek hakkında (ve orada sözde bir tür bellek sızıntısı olduğunu iddia ettiğinizi) ve bu durumda, & kesinlikle gerekli değil.


 
Roman :

Lütfen yeni operatör aracılığıyla dinamik bir nesne oluşturmanın anlamını açıklayın.

Otomatik olarak bir nesne oluştururken, yığın üzerinde bir sınıf nesnesi oluşturulur, yürütme süresi açısından dinamik olandan daha hızlıdır.
Dinamik olarak bir nesne oluştururken, işletim sistemi bellek yöneticisini kullanırken bellekte (yığın üzerinde) bir sınıf nesnesi oluşturulur, işlem daha yavaştır.

İşte sorular:
Otomatik oluşturma daha hızlıysa, dinamik nesneleri kullanmak neden daha iyidir?
Açıkça bellek tahsisini kontrol ediyor musunuz?
Olası bir yığın taşması ekarte edilsin mi?
Ve aniden nesneyi kaybetmez misin?
Yığın taştığından beri nesne otomatik olarak silinecek mi?

Nesne sayısı önceden biliniyorsa ve program çalışması sırasında sabitse, yenisine gerek yoktur. Diğer tüm durumlarda - yeni.