Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
5Activity
0 of .
Results for:
No results containing your search query
P. 1
C++ Programlama

C++ Programlama

Ratings: (0)|Views: 264|Likes:
Published by mÇelenlioğlu

More info:

Published by: mÇelenlioğlu on May 14, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

03/04/2014

pdf

text

original

 
 1
C++ NASIL BĠR PROGRAMLAMA DĠLĠDĠR?
 
C++ nesne yönelimli programlama tekniğinin uygulanabilmesi için C'nin geniĢletilmiĢ bir biçimidir. Nesne yönelimli programlama(object oriented programming) tekniği ve C++B.Stroustroup tarafından geliĢtirilmiĢtir. Tasarım 70'li yılların ikinci yarısından baĢlanmıĢ olsada bütün dünyada yaygınlaĢması ve kabul görmesi 80'li yılların sonlarına doğru mümkümolmuĢtur. Nesne yönelimli programlama tekniği(NYP) özellikle büyük kodların üstesindengelebilmek amacıyla tasarlanmıĢtır. Tasarımı C++ üzerinde yapılmıĢ olmasına karĢın bugün pek çok yüksek seviyeli programlama dilleri bu tekniği desteklemektedir. C++ ve nesneyönelimli programlama tekniğinin en belirgin uygulama alanlarından birisi WINDOWS altında programlamadır. WINDOWS karmaĢık ve yüksek yüksek seviyeli bir iĢletim sistemidir.WINDOWS altında program geliĢtirebilmek için uzun kodlar yazmak gerekir. Bu nedenleWINDOWS altında C ile değil C++ ile ve NYP tekniğini kullanarak program yazmak dahaetkin bir çözümdür. NYP tekniğinin uygulanabilmesi için çalıĢtığımız sistemin kaynaklarının
yeterince
geniĢ olması gerekir. (Yani hızlı bir mikro iĢlemci, büyük RAM ve DISK ve iyi bir iĢletim sistemi)
 C++'IN C'DEN FARKLILIKLARI
 NYPT ĠLE DOĞRUDAN
SINIF YAPISI
ĠLĠġKĠSĠ OLMAYAN
 FARLILIKLARI VEFAZLALIKLARI
Ġki düzeyde değerlendirilebil
ir.1-
)NYPT ile doğrudan iliĢkisi olayan farkılılıklar ve fazlalıklar 
 2-
)Sınıf yapısıSınıf(class) C'deki yapı(struct)'lara benzer bir veri yapısıdır. NYPT sınıflar kullanılarak  program yazılması tekniğidir. Kursun %80'i sınıf yapısının yapısı ve kullanılması üzerineayrılmıĢtır.
C++'IN NYPT ĠLE DOĞRUDAN ĠLĠġKĠSĠ OLMAYAN FARLILIKLARI VE
FAZLALIKLARI
C++ derleyicileri C derleyicisini de içermek zorundadır. Yani C++ derleyicisi demek hem C hem de C++ derleyicisi demektir. Derleyici dosyanın uzantısı
na bakarak kodun C'de mi
yoksa C++'ta mı yazılmıĢ olduğuna karar verir. C'de ise uzantısı c, C++'ta yazılmıĢsa uzantısı
cpp'dir.
1-)
 
C++'ta yerel değişkenlerin bildirimleri blokların başında yapılmak zorunda değildir.
 
Standart C'de yerel değiĢkenler blokların baĢında bildirilmek zorundadır. Yani küme paranteziaçıldıktan sonra daha hiçbir fonksiyon çağırılmadan ve iĢlem yapılmadan yapılmalıdır. Butasarımın nedeni programcının bildirimin yerini kolay bulabilmesini sağlamaya yöneliktir.
Oysa C++'ta terel
değiĢklenler bloğun herhangi bir yerinde bildirilebilir. Bir değiĢkeninkullanıma yakın bir bölgede bildirilmesi C++ tasarımcılarına göre daha okunabilirdir.
 
 2
(DeğiĢken kavramı nesne isimlerini, struct, union ve enum isimlerini ve enum sabitlerini,
typedef 
isimlerini içeren genel bir terimdir.) O halde C++'ta yerel değiĢkenin faaliyet alanı bildirim noktasından blok sonuna kadar olan bölgeyi kapsar. Ne olursa olsun bir blok içerisindeaynı isimli birden fazla değiĢken bildirimi yapılamaz.
 
C++‟da for döngüsünün birinci kısmında bildirim yapılabilir. Örnek olarak:
 for(int i = 0,j = 20; i + j < 50; ...){ }
Tabii while döngüsünün ve if deyiminin içerisinde bildirim yapılamaz.
#include <stdio.h>#define SIZE 100void main(void){for(int i = 0; i < SIZE; ++i)printf("%d\n", i);}
Böyle for döngüsünün içerisinde bildirilmiĢ değiĢkenlerin faaliyet alanları bildirildiğiyerden for döngüsünün içinde bulunduğu bloğun sonuna kadar etkilidir. if, for, switch, while
gibi deyimlerden sonra blok a
çılmamıĢ olsa bile gizli bir bloğun açıldığı düĢünülmelidir.
{for (int i = 0; i < 100; ++i) {for (int j = 0; j < 100; ++j) {}printf(%d\ 
n”, j); /*geçerli*/
 }
 printf(“%d
 \ 
n” ,i);
 
/*geçerli*/
 
 printf(“%d
 \ 
n”, j);
 
/*geçersiz*/
 }{for (int i = 0; i < 100; ++i)for (int j = 0; j < 100; ++j) {} j = 10;
/*geçersiz*/
 i = 10;
/*geçerli*/
 }
 2-)
C++’ta // ile satır sonuna kadar yorumlama yapılabilir.
 
C++‟ta /* */ yorumlama biçiminin yanı sıra kolaylık olsun diye // ile satır sonuna kadar yorumlama biçimi de eklenmiĢtir. Son senelerde böyle bir yorumlama biçimi standart C‟de dekullanılmaya baĢlanmıĢtır. Ancak ANSI C standartlarında tanımlı değildir. TaĢınabilirlik  bakımından bu yorumlama biçimini standart C‟de kullanmak tav
siye edilmez.
 
 3
3-
 )C++’ta çağırılan fonksiyon eğer çağıran fonksiyonun yukarısında tanımlanmamışsa
 fonksiyon prototipi zorunludur.
C „de bir fonksiyonun çağırıldığını gören derleyici fonksiyonun çağırılma noktasına kadar fonksiyonun tanımlamasıyla ya da prototipi ile karĢılaĢmamıĢsa geri dönüĢ değerini int olarak varsayar ve kod üretir. Dolayısıyla aĢağıdaki örnek C‟de geçerlidir.
void main(void){int x;x = fonk();}int fonk()
/*Bu durum C‟de sorun olmaz ama C++‟ta error verir.*/
 {}
Oysa C++‟ta derleyicinin çağırılma noktasına kadar fonksiyonun tanımlamasıyla ya da prototipiyle karĢılaĢması gerekir. Dolayısıyla yukarıdaki kod C++‟ta error‟dür. (NOT: CV++ve nesne yönelimli programlama tekniği bug oluĢturabilecek kodlardan kaçınılması
temeline
dayandırılmıĢtır. Yani garanti yöntemler kullanılmalıdır. Bu sebeple C‟deki pek çok uyarıC++‟ta error‟e dönüĢtürülmüĢtür.)
 4-)
 
C++’ta farklı parametre yapılarına sahip aynı isimli birden fazla fonksiyon tanımlanabilir.
void fonk(void){}void fonk(int x){}
C‟de ne olursa olsun aynı isimli birden fazla fonksiyon tanımlanamaz. Oysa C++‟ta parametreyapısı sayıca ve/veya türce farklı olan aynı isimli birden fazla fonksiyon tanımlanabilir. Aynı
isimli birden fazla fonksiyon varsa ve o fonk 
siyon çağırılmıĢsa gerçekte hangi fonksiyonçağırılmıĢ olduğu çağırılma ifadesindeki parametre yapısı incelenerek belirlenir. Yaniçağırılma ifadesindeki parametre sayısı ve türü hangisine uygunsa o çağırılmıĢ olur. Geri dönüĢdeğerinin farklı olması aynı isimli fonksiyon yazmak için yeterli değildir. Yani geri dönüĢdeğerleri farklı fakat parametre yapısı aynı olan birden fazla fonksiyon tanımlanamaz.
#include <stdio.h>void fonk(int x){printf("int = %d\n", x);

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->