C++ İle Hafızandan Yer Ayırma Örneğimiz
21.03.2012-21:18 Tarihinde Eklendi.
www.seyfettinkahveci.com
Oy Sayısı: 16005615Toplam Puan: 62650 / Yorum Sayısı: 412005615 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. |
|