C++ Sınıflarla Malloc ile Hafızadan Yer Ayırma ve O Bölümlere Harf Basma Örneğimiz


08.04.2012-19:59 Tarihinde Eklendi.
www.seyfettinkahveci.com Derecelendirme: 10 / 10 Oy Sayısı: 16002983Toplam Puan: 36330 / Yorum Sayısı: 412002983 adet.


Point.h:

#ifndef POINT_H
#define POINT_H
#include <iostream>//kütüphane tanımlaması yapılıyor
#include <cstdlib>//kütüphane tanımlaması yapılıyor
using namespace std;//isim uzayı tanımlıyoruz her satırın başına std: koymamak için

class point//point adında sınıflama yapılıyor
{
    public://herkesin erişebileceği bilgilerin yer aldığı blok
        point(int sinir);//constructor yani sınıfla ilgili işlem yapıldığında ilk çalışacak blok
        virtual ~point();//destructor yani program kapanırken çalışacak blok
        void harfekle(char harf);//harf ekle fonksiyonumuzu tanımlıyoruz
        void harfsil();//harfsil fonksyonunu tanımlıyoruz
        void yaz();//bilgileri ekrana basan kodlarımız
    private://sadece bu sınıfın üyesi olanların erişebileceği blok
        char *p;//char tipinde p adında bir pointer tanımlıyoruz
        int alinacakYer;//integer tipinde alinacakYer adında bir değişken
        int yer;//integer tipinde yer adında bir değişken
};

#endif // POINT_H

Point.Cpp:

#include "point.h"//headerımızı çağırıyoruz

point::point(int sinir)//constructor
{
    alinacakYer=sinir;//constructor a gelen veriyi alinacakyer değişkenine ata
    p=(char *) malloc(alinacakYer);//alınacakyer kadar hafızadan yer ayır ve bu alanı p değişkeninde tut
    if(!p){//p değeri false ise
    cout<<"yer alamadık";//ekrana yaz yer alamadık yaz.
    exit(0);/programı bitir
    }else{//p değeri true ise
    cout<<alinacakYer<<" yer aldım"<<endl;//ekrana yer aldım yaz.
    *p=NULL;//p pointerının içeriğine NULL bas
    yer=0;//yer değikeninin ilk değeri 0 olsun.
    }

}

point::~point()//destructor
{
    cout<<"geri veriyorum"<<endl;//geri veriyorum diye ekrana yazıyor
    free(p);//p ponterının aldığı değeri geri veriyoruz
}
 void point::harfekle(char harf){//harfekle fonksiyonumuzu yazıyoruz
     p[yer]=harf;//p değişkeninin hafızadan ayırdığı bölümlere gelen harfi ekliyor
     yer++;//yeri 1 arttır
     p[yer]=NULL;//p değişkeninin son bölümüne NULL basılıyor

 }
void point::yaz(){
            cout<<p<<endl;      //p değişkeninin içeriği ekrana yazılıyor
  }


void point::harfsil(){
              p[yer-1]=NULL;//p değişkeninin sondan bir harfine NULL bas.
 }

Main.Cpp:

#include <iostream>
#include "point.h"
using namespace std;

int main()
{
    point po(10);
    po.harfekle('S');
    po.harfekle('E');
    po.yaz();
    po.harfsil();
    po.yaz();
    return 0;
}

Kod Hakkında Anlamadığınız Bir Kısım Olursa Yorum Ekleye Yazın En Kısa Sürede Cevaplamaya Çalışırım.

Seyfettin KAHVECİ
Balıkesir Üniversitesi
NEF-BOTE



Yazının tamamının kopyalanması yasaktır. En baştaki birkaç paragrafı kopyalayıp, yazıya link verebilirsiniz. Aksi durumda uyarılmaksızın yasal yollara gidilecektir.

Yorum Ekle

Ad Soyad:
Şehir:
Yorum:
Yorumlar
Bu makale için henüz hiç yorum yapılmamış.
Unutmayın Makalelere Yorum Yazmak Yeni Makalelere Teşviktir.