C++ İle Hafızandan Yer Ayırma Örneğimiz
21.03.2012-21:18 Tarihinde Eklendi.
www.seyfettinkahveci.com
Oy Sayısı: 16006026Toplam Puan: 66760 / Yorum Sayısı: 412006026 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
| Uzun süredir yorumlara cevap veremediğim için sistem yeni yorumlara kapatılmıştır. Anlayışınız için teşekkürler. |
| ||||||||

