22 Şubat 2018 Perşembe

Virtual Nedir? Ne işe yarar?

    Virtual metot(sanal metot), temel sınıf (Base Class) içinde bildirilmiş ve türemiş sınıf (Derived Class) içinde de tekrar bildirilebilen metotlardır. Böylelikle sanal metotlar kulanılarak nesne yönelimli programlamada çok sık başvurulan polymorphism ( Çok Biçimlilik ) uygulanmış olur.
Yani temel sınıfta bir sanal metot bildirildiğinde bu temel sınıftan türeyen sınıflardaki metotlar override edilerek, temel sınıftaki virtual metodu devre dışı bırakabilirler.


      Sanal metotları bildirmek için Virtual anahtar sözcüğü kullanılır. Türeyen sınıfta ise, temel sınıftaki metotları devre dışı bırakmak için Override anahtar sözcüğü kullanılır. Yani temel sınıfta virtual olarak tanımladığımız metodu, türemiş sınıf içerisinde override edebiliriz. Eğer override edersek türemiş sınıf içerisindeki metot çalışır, eğer override etmezsek temel sınıf içerisindeki virtual metot çalışır.

8 Şubat 2018 Perşembe

Compiler, Debugger, Linker, GUI, GNU, GPL, Open Source Kavramları

  1. Derleyici (compiler): Programcılıkta, bir programlama dilinde yazılmış olan kaynak kodunu başka bir dile (genellikle makine koduna) çeviren yazılım. Derleyiciye bunu yaptırmaktaki amaç genellikle çalışabilir bir yazılım elde etmektir. Kullanıcıların programları kullanırken kolaylık sağlamak amaçlı geliştirilmiştir.
  2. Hata Ayıklama(Debugger): Debugger hata ayıklayıcı anlamına gelmektedir. Derleyici programın arkaplanında çalışarak yazılan kodlar arasındaki hataları bulmaya çalışır.
  3. Bağlayıcı (Linker): Derleyici tarafından object dosyasına çevrilen bir veya birden çok dosyanın birbirleri ile ilişkilendirmesi ve tek bir çalıştırılabilir dosyaya (Örneğin Windows exe) çevrilmesini sağlayan yazılımdır.
  4. GUI (Graphical User Interface): Grafiksel Kullanıcı Arayüzü (Graphical User Interface), bilgisayarlarda işletilen komutlar ve bunların çıktıları yerine simgeler, pencereler, düğmeler ve panellerin tümünü ifade etmek için kullanılan genel addır.
  5. GNU: GNU; çekirdeği, sistem araçlarını, açıcılarını, kütüphanelerini ve son kullanıcı yazılımlarını içeren, GNU Tasarısı kapsamında geliştirilen bir işletim sistemidir. İsminin açılımı "GNU's Not Unix" (GNU Unix değildir) dir.
  6. GPL: 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.
  7. Open Source (Açık Kaynak): Açık kaynak yazılım veya açık kaynaklı yazılım veya kaynağı açık yazılım, kaynak kodu isteyen herkese açık olan yazılımlardır. Bu tür yazılımların ayırt edici özelliği kullanıcıya yazılımı değiştirme özgürlüğü sağlamasıdır. Açık kaynak kodlu yazılımlar, uyarlanabilir, sağlam, hızlı ve güvenlidir.

IDE ve C++

IDE (Integrated Development Environment), yazılımcıların hızlı ve kolay bir şekilde yazılım geliştirebilmesini sağlayan bir yazılım türüdür.


Bazı C/C++ IDE'lerinin Listesi

  1. Kdevelop
  2. Anjuta
  3. Code Block
  4. Visual-MigGW
  5. Tiny C Compiler
  6. MinGW
  7. C-Free
  8. Digital Mars
  9. Ultimate++
  10. Dev C++
  11. Netbeans C++
  12. Code Lite
  13. Compilr
  14. Eclipse CDT
  15. Ideone

Process(işlem) ve Thread(iş parçacığı) Farkları


“Process” kendisine ait kaynakları olan işlem birimidir.Örneğin her “process” kendisine ait hafıza alanına sahiptir. Process genellikle uygulamanın kendisi olarak görülür ancak bir uygulama içinde birbirine bağımlı ve ya birlikte çalışan  processlerden meydana gelmiş olabilir. Processlerin birlikte çalışabilirliğinin sağlanabilmesi için çoğu işletim sistemi Inter Process Communication (IPC) diye adlandırılan yapıyı desteklemektedir, bu yapı sadece aynı bilgisayardaki processlerin birlikte çalışabilmesini değil aynı ağdaki processlerin birlikte çalışabilmesine imkan sağlamaktadır.

“Thread”ler de “Processler gibi”  işlem birimleridir ve  hafifsiklet processler (“lightweight processes”) olarak adlandırılırlar. Threadler daha az kaynağa ihtiyaç duymaktadırlar. “Thread”ler bir “process” içinde yer almaktadır. Her thread mutlaka bir procecesse sahiptir ve onun kaynaklarından faydalanabilir.

“Thread”ler de “process”ler gibi uygulamalarda paralellik elde etmek için kullanılırlar. Ancak “process”ler daha bağımsız işletim birimleridir, kendilerine ait durum bilgileri, kendilerine ait adres alanlarıdır ve birbirleriyle ancak IPC mekanizması ile haberleşirler. Bir “process” birçok “thread” barındırabilir, her bir “thread” mutlaka bir “process” in içinde yer almaktadır, aynı “process” içindeki tüm “thread”ler aynı hafıza alanını ve aynı durumu paylaşır birbirleriyler direk olarak haberleşebilir zaten aynı alanı paylaşırlar.

Parametre ve Argüman Arasında Farklar


   Fonksiyon çağrılırken gönderilen değerlere Argüman denir.Fonksiyon bildiriminde, fonksiyona girdi olarak, kullanılan değişkenlere Parametre denir.


/* Fonksiyon bildiriliyor ... */
   
  int topla(int x, int y)  // Burada x ve y parametre
    {
       return (x+y);
    }
    .
    .
    /* Fonksiyon çağrılıyor ... */
    t = topla(9, 6);     // Burada 9 ve 6 argüman 
    .

    .