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ı: 16005710Toplam Puan: 63600 / Yorum Sayısı: 412005710 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. |
|