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ı: 16003127Toplam Puan: 37770 / Yorum Sayısı: 412003127 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.

Uzun süredir yorumlara cevap veremediğim için sistem yeni yorumlara kapatılmıştır. Anlayışınız için teşekkürler.
Yorumlar
Bu makale için henüz hiç yorum yapılmamış.