Kayıtlar

Şubat, 2018 tarihine ait yayınlar gösteriliyor

C++ Virtual(sanal) Fonksiyonlar

Resim
Sanallık mekanizması türemiş sınıf yoluyla taban sınıfın davranışlarının değiştirilmesi için kullanılır. C++ programlama dilinde şayet taban sınıftaki bir fonksiyon virtual anahtar sözcüğü ile tanımlanmışsa fonksiyon sanal hale gelir. Bunun pratik anlamı fonksiyonun üyesi olduğu sınıftan türetme yapıldığında türeyen sınıfın söz konusu fonksiyonun davranışını değiştirebileceğidir.

Class Definition

Class:   Nesne yönelimli programlama dillerinde nesnelerin özelliklerini, davranışlarını ve başlangıç durumlarını tanımlamak için kullanılan şablonlara verilen addır. Public:  Bu erişim türü ile tanımlanmış sınıf üyelerine her yerden erişim izni verilmiş olur. Private :   Bu erişim türünde tanımlanmış üyelere sadece aynı sınıf içerisinde tanımlanmış diğer üyeler tarafından erişim izni verilmiş olur. Protected:  Bu erişim türünde tanımlanmış üyelere tanımlandık sınıf ve bu sınıftan türetilmiş diğer sınıflardan erişim izni verilmiş olur. Constructors:   Bir sınıfın örneği oluşturulduğunda kendiliğinden çalışan özel bir metottur. Sınıf ile aynı ada sahip olmak zorundadır, parametreler alabilir ama geri değer döndürmez. Tüm sınıfların bir kurucusu olmak zorundadır. Destructor:   Constructor fonksiyonunun yaptığı işin tersini yaparlar. Görevi biten nesneyi yok ederler. Bir sınıfın(class) üyesi olan bir değişken görevini noktaladığı durumda ~destructor() fonksiyonu otomatik çağrılarak

Public,Private,Protected

Public:  Foknsiyona sınıf içinden ve sınıf dışından erişime izin verir.Ayrıca Kalıtım ile aktarılır. Private:   Bu erişim belirteci işaretlenen öğeye sadece sınıfın içinden erişilebileceği anlamına gelir.Ve bu öğeler kalıtım yoluyla aktarılmaz.. Protected: Bu erişim belirteci işaratelenen ögeye sadece sınıfın içinden erişilebileceği fakat alt sınıflara aktarılabileceği anlamına gelmektedir.

Encapsulation,Inheritance,Polymorphism:

Encapsulation: Bir nesnenin bazı özellik ve işlevlerini diğerlerinden saklanabilmesi, erişimin sınırlandırılabilmesidir. Yani private tanımladığımız alanları kullanıcıdan saklamamız anlamına gelir ki zaten kullanıcının bunu kullanmasına gerek yoktur ve hatta kullanmaması gerekmektedir. Inheritance: Kalıtım (inheritance), bir nesnenin diğer bir nesnenin özelliklerini kazanması işlemidir. Diğer bir deyişle bir class’ın başka bir class’daki property ve method’lara sahip olmasına inheritance denir.. Bu önemlidir, çünkü hiyerarşik sınıflandırmayı destekler. Bir class’ın diğerindeki özellikleri miras olarak alması için kullanılan keyword ‘extends’ dir. Birçok bilgi, hiyerarşik (yani ast-üst) sınıflandırma ile yönetilebilir hale gelir. Hiyerarşiler kullanılmaz ise, her nesnenin özelliklerinin açıkça belirtilmesi gerekir. Fakat kalıtım kullanımıyla, bir nesnenin, onu sadece kendi sınıfının içinde eşsiz yapan özelliklerini belirtmemiz yeterlidir. Polymorphism : Belli bir işlemin

Nesne İşaretçileri

C++ Nesne İşaretçileri - Nesne işaretçileri artırıldığında, diğer tür işaretçilerde olduğu gibi sıradaki nesneyi işaret ederler. - Nesne işaretçisi oluşturulduğunda bir nesne oluşturulmaz. Sadece var olan bir nesne için işaretçi oluşturulur. myclass ob(120); myclass *p; p=&ob;

Destructor(Yıkıcı veya Yok edici)

Destructor(Yıkıcı veya Yok edici) Nedir? Destructor(Yıkıcı veya Yok edici) olarak adlandırılan fonksiyonlar ise,constructor fonksiyonunun yaptıgı işin tersini yaparlar,yani gorevi biten nesneyi yok ederler.Bir sınıfın(class) uyesi olan bir degisken(orn:string tipli) gorevini noktaladigi durumda ~destructor() fonksiyonu otomatik cagrilarak,uzerinde calistigi nesneyi devre dışı bırakır.C++ programlama dili icerisinde destructor'lar bulunurken,java dilinde bu fonksiyonlar kaldırılmıştır.Nedeni ise,programlama zafiyeti acısından eger iyi tasarlanmazsa,bu fonksiyonlar programa ciddi zararlar verebilirler. Destructor() fonksiyonları olmasada,constructor() fonksiyonlari aşırı yuklenebilir.Bu durumu fonksiyon parametrelerini degistirerek uygulayabilirsiniz.Ancak bu fonksiyonlarin donus tipi belirtilmemektedir.  C++ programlama dilinde bu sistemlerin initalize edilmesi asagidaki gibi tasarlanır. class class_name { // Bir class class_name(); // Bir constructor class_name(int,float); // Aşı

Constructor (Yapıcı)

Constructor (Yapıcı) Nedir? Nesne yönelimli programlama yaklaşımında bir nesnenin oluşturulması sırasında ilk çalışan fonksiyonun ismidir. Buna göre bir nesnenin oluşturulması demek, nesneyi tarif eden sınıftan bir türün hafızada (RAM) bir kopyası için yer açılması ve bu nesnenin bütün değişken ve metodlarının tanımlanan kısıtlamalarla erişilebilir olması demektir. Bilindiği üzere nesne yönelimli programlamada bir nesnenin kendisi ve bir de nesneyi gösteren nesne atıfı (object referrer) bulunmaktadır. Nesne atıfı, içersidinde tanımlandığı nesne ile atıfta bulunduğu nesne arasında bir münasebet (aggregation) kurmaktadır. Yapıcı (constructor) ise nesnenin bizzatihi kendisinin oluşturulması sırasında çalışmaktadır.

GPL Nedir?

GPL Nedir? GNU GPL (General Public License - Genel Kamu Lisansı) açık kaynağı destekleyici bir lisans türü olup, ilk defa açık kaynak kodlu yazılımların kapalı kaynak kodlu hale getirilerek satılmasından rahatsız olunmasıyla öneri olarak geliştirildi. GPL, "Özgür yazılım, özgür lisans" kavramlarında sürekliliği sağlaması sebebiyle başrolde yer aldı. GPL lisansı, aynı lisans şartlarının korunması kaydıyla her türlü kullanıma imkan veren yapısı sayesinde, açık kaynak kodlu yazılımların gelişiminde büyük katkı sahibidir. GPL'in avantajları Kullanıcı yazılımının içinde ne olduğunu bilir. Bazı üretici firmaların yaptığı öne sürülen arka kapı (backdoor) yerleştirme vakaları imkânsızdır. Bu özellikle askeri kurumlar için önemli olmaktadır. GPL ile lisanslanan yazılımın kaynak kodu ortada olduğu için gerekli inceleme yapıldıktan sonra rahatlıkla kullanılabilir. Yazılım çok büyük bir kitle tarafından kullanılması sonucunda hataların keşfedilmesi ve yine çok büyük bir kitle tarafın

GUI Nedir?

GUI Nedir? Açılımı "Graphical User Interface" olan GUI, grafiksel kullanıcı arayüzü anlamına gelir. C ve C++ ile ilgilendiyseniz konsol ekranını bilirsiniz. C++'da bir uygulama yaptığımızda bu uygulama siyah bir konsol ekranından ibaret olacaktır. Uygulamamızda buton, checkbox, radiobutton gibi nesneler olmayacaktır. Bu simsiyah konsol ekranı kullanıcıların işini zorlaştıracak ve oluşturduğunuz programın görünüşünü kötü etkileyecektir. Grafiksel kullanıcı arayüzü ile siyah konsol ekranına komut girerek uygulamayı harekete geçirmeye gerek yok. GUI sayesinde, uygulama geliştirirken butonlar, etiketler (yani label), pencereler gibi bir çok şey kullanabiliriz. Sadece fare ve klavye ile kontrol edilebilen bir uygulama, konsol ekranına komutlar girilerek işleyen bir konsol uygulamasından çok daha iyidir.

Linker(Bağlayıcı)

Linker(Bağlayıcı) Nedir? Bir derleyici tarafından üretilmiş olan kodları bağlayarak işletim sisteminin çalıştırabileceği tek bir kod üreten programdır. Günümüzde hızla gelişen programlama ihtiyaçları sonucunda programlamada modüler yaklaşıma geçilmiştir. Buna göre büyük bir yazılım küçük alt parçalara bölünmekte ve her parça ayrı ayrı işlenerek büyük program elde edilmektedir. Yapısal programlamanın da çıkış sebeplerinden birisi olan bu yaklaşıma göre dillerde fonksiyon desteği gelmiş ve değişik parametrelere göre aynı kodun farklı sonuçlar üretmesi sağlanmıştır. Daha sonradan gelişen nesne yönelimli programlama bu konuda bir sonraki nesil olarak kabul edilebilir. Nesne yönelimli programlamada, programlar nesnelere bölünerek farklı bir yaklaşım izlenmiştir. Bu yaklaşımların derleyicilere yansıması da uzun sürmemiş, daha yapısal programlamanın ilk geliştiği günlerde derleyiciler de farklı kütüphaneler ve bu kütüphaneleri birleştirmeye yarayan harici programlar kullanmaya baş

Debugger Nedir?

Debugger nedir, debugger ne işe yarar? Debugger programlarda hata ayıklamaya yaramaktadır. Kısaca debugger hata ayıklayıcıdır. Kodları yazdığımız derleyici arka planda kodları derlerken kodlar arasında hataları inceler, eğer hata bulunmakta ise hata vermektedir. Bu hata ve hataların bulunması, bulunduktan sonra da düzeltilmesi sürecine debug denir. Debug Uygulamaları Eclipse, C, C++, PHP, Notepad++

Process ve Thread Arasındaki Farklar

Process(İşlem) ve Thread(İplik Kullanımı) Proses oluşturmak işletim sistemi için bazı sebeplerden dolayı çok maliyetli bir iştir. Bu sebeple bir programın birden çok işlem yapması gerekiyorsa eğer birden fazla proses üretmesi yerine Thread yani iplik kullanımının işletim sistemi açısından daha avantajlıdır. İpliklerin Özellikleri ve Proses'ten Farkları Thread'ler, proses içinde bulunurlar ve aynı adres uzayını paylaşırlar. Bir proses içerisinde birden fazla iş yürütebilirler. İplikler prosesler gibi birbirlerinden bağımsız değildirler. Kendi aralarında kaynakları ve bazı verileri birbirleriyle paylaşırlar. 

Argument ve Parameter Arasındaki Farklar

Argüman:  Bir metoda iletilen ifadelerin değerleri. Parameter ve argument çoğu zaman birbirleri yerine kullanılabilir.Ancak bu ikisi farklı kavramlardır. Method definition'ında , methodun alabileceği parameter type ve variable name 'i belirtiriz.Method'u çağırırken methoda gönderdiğimiz değerler argument'tir. (Parametreler, arayanın yerel adlarına karşılık gelir. Bağımsız değişkenler, arayan tarafından iletilen değerlere atıfta bulunur. Örnek:  int add( int x, int y )    {    // x and y are 'parameters', the variables the callee uses to accept inputs.    return x + y;    } // 2 and 3 are 'arguments', the values passed by the caller. int result = add( 2, 3 );