Konuyu görüntüle
IUCODERS FORUM > Programlama > C / C++ > Destruction Problemi
Yazar
iemre


avatar
Anadolu
Kayıt: 26.05.2007
16.07.2008-20:55 #49224
Şimdi benim bi class ım var.Bu class la yeni bir pencere oluşturuyorum.Ve diğer penceremde de bir listbox var.Bu listboxtaki elemanın bir tanesine çift tıklayınca pencereyi oluşturduğum class ı çağırıyorum ve pencere oluşuyor.Sorun şu ki birden fazla elemana çift tıklayınca birden fazla pencere açılıyor ki zaten böyle olmasını istiyorum.Ama destruction içerisinde classı gösterdiğim pointeri yok ettiğim halde memory leak hatası olabilir diye uyarı veriyor.Pointerları bir diziye attım diziyi siliyorum " delete[] " ile yine aynı hatayı veriyor.bunu nasıl halledebilirim acaba.???





More than one
Yazar
neurorebel


avatar

Kayıt: 15.08.2007
16.07.2008-21:21 #49225
kod gösterebilirsen daha iyi olur





Do weird and difficult things.

Yazar
iemre


avatar
Anadolu
Kayıt: 26.05.2007
16.07.2008-21:25 #49226
neurorebel yazdi
 
kod gösterebilirsen daha iyi olur


Kod çok uzun bide juce programming ile alakalı olduğu için koymadım.Sadece bi class içerisinde başka bir class ı birden fazla oluşturuyorsam bunları nasıl yok edebilrim onu öğrenmek istiyorum.mesela şöyle

void MainComponent::listBoxItemDoubleClicked(int row, const MouseEvent &e)
{	
	dw = new alertim(companynames->getSelectedId(),list->getLastRowSelected());
}


buradaki dw bahsettiğim class.Listboxtaki elemanlara çift tıkladığımda bundan bir adet üretiliyor.Sonu yok yani üretilmesinin.Ama yok edemiyorum işte.





More than one
Yazar
neurorebel


avatar

Kayıt: 15.08.2007
16.07.2008-21:30 #49227
olay böyle çalışıyor normalde :)

#include <iostream>

using namespace std;

class Foo
{
public:
	Foo()
	{
		cout << "ctor
";
	}

	~Foo()
	{
		cout << "dtor
";
	}
};

int main()
{
	Foo * arr = new Foo[5];
	delete[] arr;

	return 0;
}






Do weird and difficult things.

Yazar
neurorebel


avatar

Kayıt: 15.08.2007
16.07.2008-21:32 #49228
iemre yazdi
 
neurorebel yazdi
 
kod gösterebilirsen daha iyi olur


Kod çok uzun bide juce programming ile alakalı olduğu için koymadım.Sadece bi class içerisinde başka bir class ı birden fazla oluşturuyorsam bunları nasıl yok edebilrim onu öğrenmek istiyorum.mesela şöyle

void MainComponent::listBoxItemDoubleClicked(int row, const MouseEvent &e)
{	
	dw = new alertim(companynames->getSelectedId(),list->getLastRowSelected());
}


buradaki dw bahsettiğim class.Listboxtaki elemanlara çift tıkladığımda bundan bir adet üretiliyor.Sonu yok yani üretilmesinin.Ama yok edemiyorum işte.


haa problem sanırım dwleri takip etmemenden kaynaklanıyor. mesela bir vector<alertim> nesnesi içinde tutarak sonra icabına bakabilirsin. bu şekilde memory leak var gibi görünüyor.





Do weird and difficult things.

Yazar
iemre


avatar
Anadolu
Kayıt: 26.05.2007
16.07.2008-21:34 #49229
Vektor kullanmak sanırım en akıllısı olur.Haklısın.Ben dizi ile pointerları tutmaya çalışıyorum ama bi türlü beceremedim.bide vektoru deneyeyim.Teşekkür ederim.Olmazsa yine burda görüşürüz. biggrinbiggrin





More than one
Yazar
neurorebel


avatar

Kayıt: 15.08.2007
16.07.2008-21:43 #49230
merak ettim yaw ne yapıyorsun ve niye juuus ile yapıyorsun :)





Do weird and difficult things.

Yazar
iemre


avatar
Anadolu
Kayıt: 26.05.2007
16.07.2008-21:57 #49231
Staj yaptığım foreks firması borsa işlemleriyle ilgili bi program geliştiriyor.Zaten var programda hergeçen gün yeni özellikler ekliyorlar.(programın ismi fx).Bu program için perforans çok önemliymiş.O yüzden c++ ile yazıyorlar ve arayüzü rahat bir şekilde oluşturabilmek için de juce kullanıyorlar.Benim yaptığım şimdilik bişey yok öğrenmeye çalışıyorum.Xml Parsing ile uğraşıyorum.Xml dosyasını güncelleme yeni veri ekleme silme gibi bi program yazıyorum.Arada sırada kod bana böyle hatalar çıkarıyor.Ama öğrenme de çok etkili oluyor bu hatalar.Hatalarımı seviyorum.winkwink





More than one
Yazar
iemre


avatar
Anadolu
Kayıt: 26.05.2007
17.07.2008-11:12 #49288
Bu vector süper bişeymiş.Daha yeni öğrendim ama çok işe yaradı.İsteddiğin herşeyin dizisizi kolaylıkla size belirtmeden oluşturabiliyorsun.Böylecebellek alanını çk verimli bir şekilde kullanabiliyorsun.C++ süper bir dil hergeçen gün beni şaşırtmaya devam ediyor.I love Programming.applauseapplause





More than one
Yazar
ascii


avatar
öz
Kayıt: 26.07.2006
17.07.2008-11:24 #49289
Staj yaptığın firma sanırım Necati hocanın firması, bence c++ ile sorularını bu forumdan önce kendisine sorarsan daha hızlı ve net cevaplar alırsın. Eğer Orsada'da stıaj yapıyorsan bence bunu iyi değerledir. Çünkü bence nesne yönelimli programlama mantığını öğrenebileceğin en iyi yerlerden birindesin.

Kolay gelsin...





Windows is a misunderstood Unix.


Yazar
neurorebel


avatar

Kayıt: 15.08.2007
17.07.2008-13:05 #49294
iemre yazdi
 
Bu vector süper bişeymiş.Daha yeni öğrendim ama çok işe yaradı.İsteddiğin herşeyin dizisizi kolaylıkla size belirtmeden oluşturabiliyorsun.Böylecebellek alanını çk verimli bir şekilde kullanabiliyorsun.C++ süper bir dil hergeçen gün beni şaşırtmaya devam ediyor.I love Programming.applauseapplause


STL ve Boost kütüphanelerine geçtiğin zaman gerçekten bağımlı olabilirsin program yazmaya eheh:) C++'ı bir süreliğine sadece daha iyi bir C olarak kullanmak dilin temel özellikleri konusunda sağlam temeller oluşturmak adına iyi bir pratik olabilir. Evde küçük programlar yazarak değişik özelliklerin nasıl çalıştığını deneyebilirsin. Ama son aşamada bol bol STL çalışmanı öneririm :) Ve tabii ki ucundan kıyısından Boost kütüphanesini de incelemek gerekiyor. Yakın bir zamanda standarda dahil edilecek ne de olsa. Kolay gelsin coffee

temeller sağlamlaşınca okunası kitaplar:

Effective C++
More Effective C++
Effective STL
Exceptional C++ (Sıradışı C++ Cilt1 olarak yayınlandı )
More Exceptional C++ (Sıradışı C++ Cilt2 olarak yayınlandı )

ve de googledan C++ gruplarına üye olup takip etmek çok yararlı olur. :)





Do weird and difficult things.

Yazar
ali


avatar
istanbul
admin
Kayıt: 04.01.2006
17.07.2008-14:06 #49297
neurorebel yazdi
 

..................
Exceptional C++ (Sıradışı C++ Cilt1 olarak yayınlandı )
More Exceptional C++ (Sıradışı C++ Cilt2 olarak yayınlandı )


Bu kitaplarin ingilizceleri super ama sakin turkcesini almayin.
Hata edip aldim, bir kelimesi bile anlasilmiyor. Turkcesi igrencsick

Bjarne Stroustrup un (c++ i yazan kisidir kendisi) The C++ Programming Language isimli kitabi c++ idin cok faydali bir kaynak ve referansdir, tavsiye edilir.






free software is a matter of liberty, not price. to understand the concept, you should think of free speech, not free beer.
Yazar
iemre


avatar
Anadolu
Kayıt: 26.05.2007
17.07.2008-15:49 #49303
Necati diye birisini tanımıyorum.Firma sahibinin kim olduğunu da bilmiyorum.Burda yazılım bölümünden sorumlu birisi var bütün işlerimizi o hallediyor.Forumda sormamın amacı hem kendim öğreneyim hemde arkadaşların az buçuk fikir sahibi olmasını istememden.Yoksa ben çoğu sorularımı tarık ve özgür hocaya mail yada özel mesaj atarak hallediyorum.

Herkese kolay gelsin... roserose





More than one
Yazar
ascii


avatar
öz
Kayıt: 26.07.2006
17.07.2008-16:32 #49306
Yanlış anlaşılmasın kötü niyetle söylemedim. Forex ve C++ geçince herhalde Orsada'dır diye düşündüm. Arkdaşın söylediği gibi boost'u bende şiddetle tavsiye ediyorum. Hatta istersen bende e-booklarıda e-mail'ine atabilirim. Zevklidir c++.
İyi çalışmalar...





Windows is a misunderstood Unix.


Yazar
iemre


avatar
Anadolu
Kayıt: 26.05.2007
17.07.2008-16:46 #49310
Yok kardeşim sana ne için kızayım.konuşma tarzım biraz kabadır onun için yanlış anladın heralde.Bak ne diyeceğim e-book ları uplode et istersen bir siteye buraya da koy indirmek isteyenler indirsin.Bende de güzel kitaplar var.Bende onları koyarım.Çok iyi olur.





More than one
1 2
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb