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
Oy Sayısı: 16006026Toplam Puan: 66760 / Yorum Sayısı: 412006026 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
| Uzun süredir yorumlara cevap veremediğim için sistem yeni yorumlara kapatılmıştır. Anlayışınız için teşekkürler. |
| ||||||||

