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

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ış.