C++ İle Hafızandan Yer Ayırma Örneğimiz


21.03.2012-21:18 Tarihinde Eklendi.
www.seyfettinkahveci.com Derecelendirme: 10 / 10 Oy Sayısı: 16002827Toplam Puan: 34770 / Yorum Sayısı: 412002827 adet.


Str.h:

#ifndef STR_H
#define STR_H
#include <iostream>
class Str
{
    public:
        Str(int sinir);
        virtual ~Str();
        void harfEkle(char c);
        void yaz();
    protected:
    private:
        char *p;  //hafızada ayrılan yerin başlangıç adresi
        int len; //uzunluk
        int pos; //imleç yeri
};

#endif // STR_H

str.cpp

#include "str.h"
#include <cstdlib>
Str::Str(int sinir)
{
    //ctor
    len = sinir;
    std::cout<<"ayrilan yer:"<<len<<"\n";
    p = (char *)malloc(len);
    if(!p)
    {
        std::cout<<"vermediler";
        exit(1);
    }
    else
    std::cout<<"verdiler\n";
    *p = \n ; //sonlandır
    pos = 0;
}

Str::~Str()
{
    //dtor
    std::cout<<"iade ediyorum\n";
    free(p);
}

void Str::harfEkle(char c)
{
    p[pos] = c;
    pos++;
    p[pos] = \n ;
}
void Str::yaz()
{
    std::cout<<p<<"\n";
}

main.cpp

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

int main()
{
    Str btr(32);
    btr.harfEkle( Y );
    btr.harfEkle( e );
    btr.harfEkle( t );
    btr.harfEkle( e );
    btr.harfEkle( r );
    btr.harfEkle( ! );
    btr.yaz();
    int z;
    cin>>z;
    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.