ForumTayfa  

Go Back   ForumTayfa > Güvenlik & Bilgisayar & İnternet & Webmaster & Programlama Bölümü > Güvenlik & Bilgisayar & İnternet & Webmaster & Programlama > Programlama

Programlama Programlama hakkında herşeyi paylaştığımız, soru ve sorunlarımızı tartıştığımız bölüm...

Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Stil
Alt 24.12.08, 01:02   #1 (permalink)
Acemi Tayfa
 
ShıFтdєLєтє - ait Kullanıcı Resmi (Avatar)
 
Üyelik Tarihi: Dec 2008
Nereden: Ankara/Batıkent
Mesaj Sayısı: 402
Konu Sayısı: 91
Takım: Fenerbahçe
Rep Gücü: 12706
Rep Puanı: 1269432
Rep Derecesi : ShıFтdєLєтє 0-2000000ShıFтdєLєтє 0-2000000ShıFтdєLєтє 0-2000000ShıFтdєLєтє 0-2000000ShıFтdєLєтє 0-2000000ShıFтdєLєтє 0-2000000ShıFтdєLєтє 0-2000000ShıFтdєLєтє 0-2000000ShıFтdєLєтє 0-2000000ShıFтdєLєтє 0-2000000ShıFтdєLєтє 0-2000000
Ruh Hali:

Standart C++'ta sınıf kavramı




C programlama dilinden, C++ Object Oriented yani Nesne Yönelimli programlama diline geçen arkadaşlarımızda genelde sınıf kavramının anlaşılmasında büyük güçlük çekilmektedir, oysaki günümüzde OOP (object oriented programming) diller en çok tercih edilen dillerdir bu yüzdende mutlaka sınıf kavramının çok iyi öğrenilmesi gerekmektedir.

Sınıf kavramını birden fazla şekilde açıklayarak iyice sindirilmesini sağlamaya çalışacağım.ilk olarak sınıfı bir paket olarak düşünmenizi istiyorum ve bu paket içinde hem verileri hem de fonksiyonları barındırıyor. Bu paket öyle bir paket ki nasıl çalıştığı hakkında bir fikriniz yok ancak sizin söylediklerinizi fonksiyonları varsa bu var olan fonksiyonlarla veriler üzerinde oynama yapabiliyor. Yani siz tutup direk veriyle oynayamıyorsunuz ancak fonksiyona (varsa) söylüyorsunuz oda veriye müdahale edebiliyor.

İkinci olarak sınıf deyince aklınıza bir araba gelsin ve siz de iyi bir şoförsünüz! Siz çok güzel araba kullanabiliyorsunuz değil mi? ama nasıl kullanıyorsunuz size verilmiş olan gaz fren ve debriyaj pedallarıyla (fonksiyonlar) peki siz motor nasıl işliyor araç nasıl gidiyor bir fikriniz var mı hayır yok ! işte class böyle bir şey siz verilen fonksiyonlarla classın verilerine gayet güzel ulaşırsınız ancak yetkileriniz sınırlıdır ve fonksiyonların nasıl işlediğini bilmeniz gerekmez..

Son olarak class diyince aklınıza birde bir kroki ve işçi gelsin. İşçiye verin krokiyi defalarca kullanıp size birçok ev yapsın. Peki sorun bakalım işçiye nasıl oluyor bu çizimler nasıl yapılıyor bir fikrin var mı diye? Hayır yok iç dizaynını bilmesi gerekmez işçinin burada önemli olan defalarca aynı krokinin yada taslağın kullanılabilme özelliğidir tıpkı class'lar gibi.

Şimdi benzetmelerden sonra artık bir fikriniz vardır class hakkında en azından bir class defalarca kullanılabilir , sonra bir classta hem fonksiyonlar hem de veriler aynı anda birbiriyle sıkı bir şekilde bağlı olarak bulunurlar hatta fonksiyonlar verilere emir gönderir yoksa verilere ulaşılamaz ve kontrol edilemez. Bir class veriler ve fonksiyonların beraber bulunduğu bir tanım kümesidir. Daha önceki fonksiyonel dillerde (C gibi) sadece fonksiyon bizim için çok önemliydi veri fonksiyonun kontrol edeceği bir değişkendi sadece.
Tüm bunlara rağmen class halen benim için belirsiz diyorsanız Size işin gerçek profesyonel kısmını anlatıyım belkide işi oradan çözersiniz.. Bir OOP dillerinde tutup bir class belirleyeceğiz sonrada bunu main() fonksiyonunun içinde kullanabilmek için bir nesne(Object) yaratacağız. Bu objenin hem fonksiyon hem de verisi olmuş olacak class sayesinde ve biz bu objeyi kullanarak birçok verisel işlemi fonksiyonları sayesinde yapabileceğiz. Normalde değişkenler kısmında int emre diye bir değişken tanımladınız diyelim. Aslında int sizin classınız ve emre de objeniz oluyor bunu böyle düşünün. O zaman yazar diye bir class oluşturdunuz bunun objeside çamalan olsun. İşte bir değişken ile class aslında birbirine benziyor int emre ile yazar Çamalan aynı tanımlamayla işlem görüyor..

Şimdi artık örneklerle durumu izah etmeye çalışacağım..


#include <iostream>#include <string>#include <stdio.h>using namespace std;class yazar{private:int emre;public:int camalan( int a){ emre = emre +a;}print(){cout<<emre;}};int main(){yazar nesne;int sayi;cout<<"bir sayi giriniz"<<endl;cin>>sayi;nesne.camalan(sayi);nesne .print();getchar();getchar();return 0;}bu kodda her şey dahada netleşecektir umarım:Açıklamaya başlıyorum şimdi.#include <iostream>#include <string>#include <stdio.h>using namespace std;

Bu kısmı özellikle sadece başlangıç kütüphaneleri diyip geçiyorum çünkü konumuz classlar .


class yazar{private:int emre;public:int camalan( int a){ emre = emre +a;}print(){cout&lt;&lt;emre;}};

Burada class yazar ile başlayan classımız bize yazar diye bir sınıf belirlediğimizi anlatıyor. Classın bitişindeki Noktalı virgülü halen fark etmediyseniz lütfen fark edin onduz sürekli hata alırsınız.


Private :Public:

Bunlar bizim bölümlerimiz private kısmına sadece fonksiyonlar ulaşabilir ki hangi fonksiyonlar?? Tabikide sadece classın içindeki yani publicteki fonksiyonlar. Peki biz dışardan nereye ulaşabiliyoruz?? Biz sadece public kısmına main() fonksiyonundan ulaşabiliyoruz onlarda private kısmına ulaşıyor..

Main kısmındaki çok önemli noktamız ise:


yazar nesne;nesne.camalan(sayi);nesne.print();

Burada yazar nesne; bize yazar classına bir nesne oluşturduğunu anlatıyor.

Sonrasında ise nesne.camalan yazar sınıfına nesne ile ulaş ve camalan adlı fonksiyonu çağır diyor.. aynı şekilde print fonksiyonuda yazar classından nokta operatörü sayesinde ulaşılıyor.


ShıFтdєLєтє isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Mol kavramı ile ilgili sorular tekelioğlu Kimya 0 06.10.08 22:27
Sınıf nk83 Yerli Diziler ve Tv Showları 7 20.09.08 12:50
Kurt Delikleri ve Zaman Kavramı KiBeLe Garip Olaylar 1 24.09.07 20:34
Flashta Stage Kavramı Barış Flash 0 22.09.07 00:46
İzel" Assolist kavramı bitti NeoJima Magazin 0 06.06.07 15:26


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 13:50.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.6.0
User Alert System provided by Advanced User Tagging v3.0.6 (Lite) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
ForumTayfa

Arşiv: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 102 103 104 105 106 155 156 157 158 159 160 161 162 163 164 167 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271


ForumTayfa - Link Değişimi
Telinka İletişim | Voip Ürünleri | Link Değişimine Katılın |

Sitemiz bir forum sitesi olduğundan dolayı, kullanıcılar her türlü görüşlerini önceden onay olmadan anında siteye yazabilmektedir. ForumTayfa Yöneticileri mesajları itina ile kontrol etse de, bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir. Yine de sitemizde yasalara aykırı unsurlar bulursanız [email protected] email adresine bildirebilirsiniz, şikayetiniz incelendikten sonra en kısa sürede gereken yapılacaktır.

Any member of our web site has the right of adding comments instantly without getting permisson due to the forum structure of our site basis. Althought, our site modarators check comments with care, all the responsibilities sourced from these comments directly belong to the members. If you still find any illegal content in our site ( A.buse, H.arassment, S.camming, H.acking, W.arez, C.rack, D.ivx, Mp.3 or any Illegal Activity ), please report us via [email protected] .Your reports will be evaluated as soon as the arrival of your e-mail.