Home > Gezegen, Programlama > C ile Nesne Yaratmak

C ile Nesne Yaratmak

Evet kışkırtıcı bir başlık attım :)
Aslında yapacağımız olay bir structı nesne gibi kullanmak. Buna benzer bir kodu yıllar önce görmüştüm. O günden bu güne sürekli böyle bir şeyi nasıl yaparım diye araştırdım. Anca bugün çözebildim olayı ;)
Kodu aşağıda yorum satırıyla beraber veriyorum. Yorumlarda gerekli açıklamaları yaptım.

Bu yazıyla C-3PO nun ne lakası var diyebilirsiniz. C ile resim ararken karşıma bu çıktı, bende boş durmasın dedim :)

  1. /*
  2.  * Sınıfımızı yaratıyoruz
  3.  */
  4. struct _myobject {
  5. // alt alanlar
  6. int a, b;
  7. /*
  8.   * Metod
  9.   * Burada fonksiyon pointerı tanımlıyoruz
  10.   */
  11. int (*add)(struct _myobject*);
  12. };
  13.  
  14. // struct ön ekinden kurtuluyoruz
  15. typedef struct _myobject MyObject;
  16.  
  17. /*
  18.  * Asıl işi yapacak fonksiyonu tanımlıyoruz
  19.  * MyObject structını parametre olarak alıyor
  20.  */
  21. int realAdd(MyObject* a) {
  22. return a->a + a->b;
  23. }
  24.  
  25. int main ( void ) {
  26. /*
  27.   * Nesnemizi oluşturuyoruz.
  28.   * add pointerına fonksiyonu atıyoruz
  29.   */
  30. MyObject mo = {1, 2, realAdd};
  31. printf("A + B = %d\n", mo.add(&mo));
  32. return 0;
  33. }

Kodun başına stdio.h headerını eklemekte fayda var. WP sıkıntı çıkarttığı için silmek zorunda kaldım. Kodun düzgün halini burada bulabilirsiniz.

Categories: Gezegen, Programlama Tags: , , ,
  1. April 27th, 2010 at 12:09 | #1

    Güzeldi… :)

  1. No trackbacks yet.