Ne zaman operator overloading yapilir. Operator Overloading

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Ne zaman operator overloading yapilir. Operator Overloading"

Transkript

1 Operator Overloading Operator overloading, bir operator e standard anlami haricinde yeni anlamlar vermek Overloaded operator giris olarak aldigi operand (parameter ) larin type ine gore anlam kazanir Ornek: standard matematikte, + ve integers, reals, vectors, complex numbers, matrices, vb icin tanimlanir C++ da, << operator oveload edilmistir 1. Anlam: stream insertion operator 2. anlam: Bitwise left-shift operator 12/10/2004 Nesneye Yonelik Programlama 8.1 Ne zaman operator overloading yapilir Operator overloading function call ve member function call larinin notasyonunu kolaylastirir Ornek: Color3 = mix (Color1, Color2); yerine Color3= Color1 + Color2; yazilabilir burada + color lar icin tanimlanmistir Operator overloading ayni zamanda kullanici tarafindan tanimlanmis yeni typeler le built-in type ler arasindaki analogy i pekistirmek icin kullanilirlar Ornek: << ve >> operatorleri user-defined type lar icn output input islemleri icin tanimlanabilir 12/10/2004 Nesneye Yonelik Programlama 8.2 Overload edilebilen C++ Operator leri Assignment operator ve stream operators =, <<, >> Arithmetic operators +, -, *, /, %, +=, -=, *=, /=, %= Increment and decrement operators ++, -- Logical operators!, &&,, <<, >> Bitwise logical operators ~, ^, &,, ^=, &=, = Relational and equality operators <, >, <=, >=, ==,!= Dynamicmemory allocation operators new, delete, new [ ], delete [ ] Other operators ( ), [ ], ->, the comma operator (, ) 12/10/2004 Nesneye Yonelik Programlama 8.3 Overload edilemeyen operator ler. Dot member access operator.* Dot member access using pointer :: scope resolution operator?: ternary conditional operator sizeof 12/10/2004 Nesneye Yonelik Programlama 8.4

2 C++ da operator ler nasil overload edilirler Syntax: <return_type> <class_name>::operator# (<parameters>) { <function body that defines operator # > Semantics: Operator # user-defined class (ismi class_name) in objectleri icin yeniden tanimlanir <parameters> tipik olarak <class_name> tipinde bir giris parameter ve <return_type> tipik olarak <class_name> tipinde geri donen degerin tipini gosterir 12/10/2004 Nesneye Yonelik Programlama 8.5 Ornek // Contents of the header file point.h class Point { public: void setpoint (int i, int j, int k); // define a default constructor Point (int i=0, int j=0, int k=0 ) { setpoint (i,j,k); Point operator+ ( Point p) ; Point operator= (Point p); void displaypoint ( Point P ) const; private: int x,y,z; // 3-D coordinates 12/10/2004 Nesneye Yonelik Programlama 8.6 // start of file point.cpp #include <iostream> #include point.h void Point::setPoint (int I, int j, int k) { x = i; y = j; z = k; void Point::displayPoint ( Point p) const { cout << ( << x <<, << y <<, << z << ) ; Point Point::operator+ (Point p) { Point result; result.x = x + p.x; result.y = y + p.y; result.z = z + p.z; return result; 12/10/2004 Nesneye Yonelik Programlama /10/2004 Nesneye Yonelik Programlama 8.8 Point Point::operator= (Point p) { x = p.x; y = p.y; z = p.z; return *this;

3 #include point.h int main ( ) { Point a (3,2,1), b(13,14,15), c; a.displaypoint ( ); b.pisplaypoint ( ); c = a + b; c.displaypoint ( ); c = a + b + c; c.displaypoint ( ); c = b = a; c.displaypoint ( ); b.displaypoint ( ); Operator Overloading de kisitlamalar Operator overloading le operator lere built-in type lerdeki davranislaridan farkli bir davranis kazandirilamaz Operator e en az bir tane user-defined type veya class i argument olarak almali Operator overloading implicitly olmaz # i overload etmek # = I de overload etmek anlamina gelmez == i overload etmek!= de overload etmek anlamina gelmez Hint: ilgili bir kac operator u overload etmek istersek, her birini ayri ayri overload etmek gerekir (explicitly) Overloading parameter sayisini degistiremez return 0; 12/10/2004 Nesneye Yonelik Programlama /10/2004 Nesneye Yonelik Programlama /10/2004 Nesneye Yonelik Programlama /10/2004 Nesneye Yonelik Programlama 8.12

4 12/10/2004 Nesneye Yonelik Programlama /10/2004 Nesneye Yonelik Programlama 8.14 C++ << ve >> ye nasil davranir? C++ compiler cout << phone ile karsilastiginda, bunu function cagrimi syntax ina operator<< (ostream &, const PhoneNumber &) donusturur. Sonuc sonraki output argument leri kabul eden ostream dir ( << left associative) C++ compiler cin >>phone ile karsilastiginda, bunu function cagrimi operator>>(istream &, PhoneNumber &) synax ina donusturur. Sonuc daha sonraki input argument lerini kabul eden istream dir ( >> left associative ) 12/10/2004 Nesneye Yonelik Programlama /10/2004 Nesneye Yonelik Programlama 8.16

5 Complex class i icin extraction operator (>>) unun overload oldugunu varsayalim. istream &operator>> (istream &input, Complex &cnum) { input >> cnum.real >> cnum.imag; return input; Overloaded operator su sekilde kullanilabilir Complex c_obj; cin >> c_obj; Ikinci statement cin >> c_obj; asagidaki statement a esit operator>> (cin, c_obj ); ve evaluate edildiginde ise cin >> c_obj.real >> c_obj.imag; e esittir 12/10/2004 Nesneye Yonelik Programlama 8.17 Her iki parameter da reference ile gecirilir System stream lar hakkinda bir takim bilgileri update ettiginden dolayi, stream object leri daima reference ile function a gecirilir Ikinci objec (Complex object) in data member lari update edildiginden function a reference ile gecirilir Stream reference olarak geri dondurulur. Boylece input (output) u cascade edebiliriz Complex c1_obj, c2_obj; cin >> c1_obj >> c2_obj; 12/10/2004 Nesneye Yonelik Programlama 8.18 Single call (tekli cagrim) olarak kullanildiginda: cin >> c_obj; Dondurulen deger kullanilmaz. Ikinci argument c_obj birinci argument e gore degistirilir. Cascade (chain) olarak cagrim yapildiginda: cin >> c1_obj >> c2_obj; Ikinci argument c1_obj birinci argument cin e gore degistirilir ve dondurulen deger ikinci function cagrimi icin ilk argument gorevini gorur operator >> (input, c2_obj ); Buradaki input c1_obj nin degerini iceren istream object idir 12/10/2004 Nesneye Yonelik Programlama 8.19 Unary Operator Overloading Unary operatorlerin overloading in iki yolu Argumentsiz non-static member fonksiyonu kullanarak (object argument olarak davranir) Ornek: class String { public: bool operator!() const;. ; Bir argumentli non-member function kullanarak (argument object veya object e reference olmali) Ornek: class String { friend bool operator! (const String &). 12/10/2004 ; Nesneye Yonelik Programlama 8.20

6 Binary Operator Overloading Binary operatorlerin overloading in iki yontemi Bir argument li non-static member function kullanarak (object ikinci argument olarak davranir) class String { public: const String &operator+= ( const String & );. ; Iki argumentli bir non-member function kullanarak (argumentlerden birtanesi object veya object e ref olmali) class String { friend const String &operator+= (String &, const String &). ; 12/10/2004 Nesneye Yonelik Programlama 8.21 Copy Constructors & Assignment Operators Default olarak, bir object assign edildiginde veya object in kopyasi gerektiginde, memberwise copy kullanilarak kopyalama islemi gerceklestirilir Eger object ler dynamic olarak allocate edilen bellek alanlarina sahipse problemlere yol acar Bir kopyayi yok etmek allocate edilen memory nin delete edilmesi anlamina gelir ve diger object tarafindan point edilen memory alaninin da yok edilmesi anlamina gelir Cozum: dynamic olarak allocate edilen object lerinin kopyasini olusturmak icin bir copy constructor ve bir overloaded assignment operator tanimla 12/10/2004 Nesneye Yonelik Programlama /10/2004 Nesneye Yonelik Programlama /10/2004 Nesneye Yonelik Programlama 8.24

7 Copy Constructors Class declaration da, sunu ilave et <class_name> (const <class_name> &) Yeni member fonksiyonun definitioni (1) dynamic olarak create edilen butun subobject ler icin gerekli memory allocate edilmeli (2) verilen object in sub-objectlerinin icerigi copy object e verilmeli Copy Constructor class icin copy constructor tanimlandiginda, copy constructor automatic olarak asagidaki durumlarda cagrilir Bir object fonksiyona call-by-value ile gecirildiginde Bir fonksiyondan bir object donduruldugunde Var olan bir object in kopyasi olarak yeni bir object initialize edildiginde 12/10/2004 Nesneye Yonelik Programlama /10/2004 Nesneye Yonelik Programlama 8.26 Assignment Operator Overloading class declaration da sunu ilave et const <class> &operator= (const <class> &); Diger binary overator lerin overloading inde oldugu gibi, compiler su kod ornegini object = object2; asagidaki function call ile yer degistirir object1.operator= (object2); Assignment operator function taniminda Self-assignment a izin verilmemeli Cascaded assignment lara izin vermek icin object e bir pointer geri dondur ( return *this) (ornek: object1 = object2 = object3; ) 12/10/2004 Nesneye Yonelik Programlama 8.27 built-in type lar arasinda donusum C++ compiler operator ler farkli type sahip argumentlere uygulandiginda guvenli type cevrimleri icin automatic olarak code yerlestirir (promotion veya implicit conversion) Ornek: int + double double sonuc uretir Bazen programci explicit (acik) type conversion a ihtiyac duyar Ornek: avg = static_cast<float>(sum) / num; Syntax: static_cast < <typename> > ( <argument>) 12/10/2004 Nesneye Yonelik Programlama 8.28

8 user-defined type lar arasinda donusum Cast Operator Functions Bazen user-defined type ler arasinda cevrime ihtiyac duyabiliriz. Bu is icin programci conversion function(s) lari tanimlamali Conversion constructors: Tek argument alan ve argument tipini (built-in type veya user-defined type) ini object type ine ceviren constructor Conversion ( cast ) operators: Non-static member function kullanarak bir class a ait object i Cast operator decleration syntax i: <old_class>::operator<new_class> const; Semantics: Input parameter i <old_class> type inden <new_class> in bir object ine donusturur return type gerekmez cast operator soyle cagrilir (newclass ) objectname ; baska bir class in object ine cevir 12/10/2004 buit-in type object Nesneye e cevir Yonelik Programlama /10/2004 Nesneye Yonelik Programlama 8.30 overloaded cast operator functions Iki veya daha fazla cast operator ler overload edilmek suretiyle class in object I iki veya daha fazla user-defined (buil-in defined) class larin object lerine donusturulur class A { public: operator int( ) const; operator double ( ) const; operator B ( ) const; private: 12/10/2004 Nesneye Yonelik Programlama 8.31 ; cast operator lerini kullanarak implicit conversions Bir dizi cast function lari tanimlandigi zaman compiler bunlari kullanarak implicit type conversion yapar Ornek: kullanici tarafindan bir cast operator u tanjimlandigini ve bunun class A nin objec lerini char * ya cevirdigini varsayalim compiler operator char * automatic olarak cagirmak suretiyle asagidaki code un dogru sonuc uretmesini saglayacak cout << objectname; // objectname class A nin object i 12/10/2004 Nesneye Yonelik Programlama 8.32

9 Overloading ++ and -- Prefix operators (preincrement ve predecrement) diger prefix unary operator ler gibi implement overload edilebilirler Postfix operators (postincrement ve postdecrement) operatorlere 0 degerli bir dummy input parameter verilmek suretiyle prefix versiyonlarindan ayirt edilirler 12/10/2004 Nesneye Yonelik Programlama 8.33 overloading preincrement operator Method 1: member function kullanarak s nin class A nin objetct i oldugunu varsayalim Compiler ++s yi gordugunde s.operator++( ) yi uretir Dolayisiyle class A, A &operator++( ) member function a sahip olmali Function definition A &A::operator++ ( ) Method 2: non-member friend function kullanarak friend A &operator++ (A &) // decleration A &operator++ (A &) // definition 12/10/2004 Nesneye Yonelik Programlama 8.34 overloading postincrement operator Method 1: member function kullanarak s nin class A nin objetct i oldugunu varsayalim Compiler s++ yi gordugunde s.operator++(0 ) yi uretir Dolayisiyle class A, A &operator++(int ) member function a sahip olmali Function definition A &A::operator++ (int ) Method 2: non-member friend function kullanarak friend A &operator++ (A &, int) // decleration A &operator++ (A &, int) // definition 12/10/2004 Nesneye Yonelik Programlama 8.35 #include <iostream.h> #include <stdlib.h> struct CELL{ int element; struct CELL *next; ; class List{ public: List( ); List(const List &); ~List( ); void Add_element(int); void Remove_element(int); void print( ); const List& operator=(const List &); const List& operator++(); const List operator++(int); void sort( ); private: struct CELL *list_header; struct CELL* create_element(int); struct CELL* insert_sorted_list(struct CELL*,struct CELL*); ; 12/10/2004 Nesneye Yonelik Programlama 8.36

10 struct CELL* List::create_element(int i) { struct CELL *ptr; ptr = (struct CELL *) malloc(sizeof(struct CELL)); ptr->element = i; return ptr; List::List( ) { cout<<"birinci List constructor cagrildi\n"; list_header = 0; List::List(const List &list) { struct CELL *temp1, *temp2; cout<<"ikinci List constructor cagrildi\n"; list_header = 0; if(list.list_header == 0) return; temp2=list.list_header; temp1 = list_header = create_element(temp2->element); temp2 = temp2->next; while(temp2) { temp1->next = create_element(temp2->element); temp2 = temp2->next; temp1 = temp1->next; temp1->next = 0; List::~List( ) { struct CELL *temp; cout << List destructor cagrildi\n"; temp= list_header; while(temp) { list_header = list_header->next; delete temp; temp=list_header; 12/10/2004 Nesneye Yonelik Programlama /10/2004 Nesneye Yonelik Programlama 8.38 const List& List::operator=(const List & input_list) { struct CELL *header1 = list_header; struct CELL *header2 = input_list.list_header, *temp = 0; if(header2==0) list_header = 0; while (header1 && header2) { temp = header1; header1->element = header2->element; header1 = header1->next; header2 = header2->next; // while if(header2 == 0) { if (temp) temp->next = 0; temp = header1; while (temp) { header1 = header1->next; delete temp; temp = header1; // while // if (header == 0) else { if(header2 &&!list_header) { list_header = temp = create_element(header2->element); header2=header2->next; while(header2) { temp->next = create_element(header2->element); temp = temp->next; header2 = header2->next; // while if(temp) temp->next = 0; // else return *this; 12/10/2004 Nesneye Yonelik Programlama 8.39 const List& List::operator ++() { struct CELL *temp = list_header; while(temp) { temp->element++; temp = temp->next; return *this; const List List::operator ++(int) { struct CELL *temp_header = list_header; List temp = *this; while(temp_header) { temp_header->element++; temp_header = temp_header->next; return temp; 12/10/2004 Nesneye Yonelik Programlama 8.40

11 void List::Add_element(int i) { struct CELL *new_element_ptr = create_element(i); new_element_ptr->next = list_header; list_header = new_element_ptr; void List::Remove_element(int i) { struct CELL *temp1,*temp2; temp1=temp2=list_header; while(temp2) { if(temp2->element == i) { if(temp1==temp2) list_header = temp2->next; else temp1->next=temp2->next; void List::print( ) { struct CELL *temp_ptr = list_header; cout<<endl; while(temp_ptr) { cout << temp_ptr->element << ; temp_ptr=temp_ptr->next; cout <<endl; free(temp2); break; temp1=temp2; temp2=temp2->next; 12/10/2004 Nesneye Yonelik Programlama /10/2004 Nesneye Yonelik Programlama 8.42 struct CELL* List::insert_sorted_list(struct CELL* header, struct CELL* cell) { if(!header) { cell->next = 0; return cell; else if(cell->element <= header->element) { cell->next = header; return cell; else { header->next = insert_sorted_list(header->next,cell); return header; void List::sort( ) { struct CELL *temp1,*temp2; temp1 = list_header; list_header = 0; while (temp1) { temp2=temp1->next; list_header = insert_sorted_list(list_header,temp1); temp1 = temp2; 12/10/2004 Nesneye Yonelik Programlama 8.43 class Stack{ public: Stack( ); // default constructor Stack(Stack &); // copy constructor ~Stack( ); // destructor void push(int); bool pop(int &); void print( ); operator List( ) const; // overloading cost operator operator List*( ) const; // overloading cost operator private: struct CELL *stack_ptr; ; 12/10/2004 Nesneye Yonelik Programlama 8.44

12 Stack::Stack( ) { cout << "birinci Stack constructor cagrildi\n"; stack_ptr = 0; Stack::Stack(Stack & stack) { CELL *temp = stack.stack_ptr; CELL *cell; cout << ikinci Stack constructor cagrildi\n"; stack_ptr = 0; if (!temp) return; stack_ptr = cell = (struct CELL *) malloc(sizeof(struct CELL)); cell->element = temp->element; temp = temp->next; while(temp) { cell->next = (struct CELL *) malloc(sizeof(struct CELL)); cell->next->element = temp->element; cell = cell->next; temp = temp->next; cell->next = 0; Stack::~Stack( ) { CELL *temp; cout <<"Stack destructor cagrildi\n"; while(stack_ptr) { temp = stack_ptr->next; free(stack_ptr); stack_ptr = temp; 12/10/2004 Nesneye Yonelik Programlama 8.45 void Stack::push(int element) { CELL *cell = (struct CELL *) malloc(sizeof(struct CELL)); cell->element = element; cell->next = stack_ptr; stack_ptr = cell; bool Stack::pop(int &element) { if(!stack_ptr) return false; else { CELL *cell = stack_ptr->next; element = stack_ptr->element; free(stack_ptr); stack_ptr = cell; return true; void Stack::print( ) { CELL *cell = stack_ptr; cout << endl; while(cell) { cout << cell->element <<" "; cell = cell->next; cout << endl; 12/10/2004 Nesneye Yonelik Programlama 8.46 Stack::operator List( ) const { List list; CELL *cell = stack_ptr; while(cell) { list.add_element(cell->element); cell = cell->next; return list; Stack::operator List*( ) const { List *list = new List; CELL *cell = stack_ptr; while(cell) { list->add_element(cell->element); cell = cell->next; return list; 12/10/2004 Nesneye Yonelik Programlama 8.47 int main( ) { class List list1; // 1 list1.add_element(10); // 2 list1.add_element(20); // 3 list1.add_element(40); list1.print(); // 4 class List list2; // 5 list2 = list1++; // 6 list1.print(); // 7 list2.print(); // 8 class Stack stack1; // 9 stack1.push(3000); stack1.push(5000); // 10 stack1.push(1000); stack1.push(4000); // 11 stack1.print( ); // 12 class Stack stack2 = stack1; // 13 int element; // 14 if (stack2.pop(element)) // 15 cout << element <<endl; // 16 stack2.print( ); // 17 list1 = (List) stack2; // 18 cout <<"------\n"; // 19 list1.print( ); // 20 class List *list_ptr; // 21 list_ptr = (List*)stack1; // 22 list_ptr->print( ); // 23 delete list_ptr; // 24 return 12/10/2004 0; Nesneye // Yonelik 25 Programlama 8.48

Inheritance. Inheritance (turetim)

Inheritance. Inheritance (turetim) Inheritance (turetim) Bir cok problemin cozumu icin belirlenen class lar hierarsik bir yapi seklinde organize edilebilir C++ gibi bir cok Object-oriented diller class benzerliklerinin etkin bir sekilde

Detaylı

C++ Class larina baslangic. C++ Versus C Object-oriented Language C++ Structure dan Object Create etmek. Structure tanimlama.

C++ Class larina baslangic. C++ Versus C Object-oriented Language C++ Structure dan Object Create etmek. Structure tanimlama. C++ Class larina baslangic Object oriented programming language olarak kullanildiginda, programming in temel birimi class lardir Object lerin create edilmesinde blueprint gorevi gorur Class data (object

Detaylı

Pros and Cons of Pointers. Pointers. Avantajlar. Dezavantajlar

Pros and Cons of Pointers. Pointers. Avantajlar. Dezavantajlar Pointers Java haric, cogu programming languages memory address lerine ait abstract data type destigine sahiptirler C++ da buna pointer denir Pointers lar data structures ve parameter passing in karmasikligini

Detaylı

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 203 Veri Yapıları ve Algoritmalar I

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 203 Veri Yapıları ve Algoritmalar I Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 203 Veri Yapıları ve Algoritmalar I GENEL DERS BİLGİLERİ Öğretim Elemanı : İzzet TAMER Ofis : MUH 311 Ofis Saatleri : Pazartesi: 14:10 15:00, Salı:

Detaylı

const objects & const member functions const objects ve const functions Data Member Initializer List Data Member Initializer List

const objects & const member functions const objects ve const functions Data Member Initializer List Data Member Initializer List const objects & const member functions Principle of Least Privilege: Bir software parcasina sadece kesin olarak ihtiyac duyulani ver. Bu yolla bir cok muhtemel hata yakalanabilir ve bu hatalardan sakinilabilinir

Detaylı

En kucuk calisabilir birime satetement denir Statements semicolon (;) ile sonlanir Yalniz basina ; null statement i ifade eder

En kucuk calisabilir birime satetement denir Statements semicolon (;) ile sonlanir Yalniz basina ; null statement i ifade eder C++ Statements C++ control structures En kucuk calisabilir birime satetement denir Statements semicolon (;) ile sonlanir Yalniz basina ; null statement i ifade eder Ornek: while (*str++ = *inbuf++) ; {

Detaylı

Object-Oriented Programming Lab 4. - Sıcaklık değeri, Kelvin biriminde saklansın. Varsayılan sıcaklık değeri K olsun.

Object-Oriented Programming Lab 4. - Sıcaklık değeri, Kelvin biriminde saklansın. Varsayılan sıcaklık değeri K olsun. 04.08.2017 Object-Oriented Programming Lab 4 1. class sicaklik sicaklik class ı oluşturun. - Sıcaklık değeri, Kelvin biriminde saklansın. Varsayılan sıcaklık değeri 273.15 K olsun. - okucel, okufah ve

Detaylı

Operatörlere İşlev Yükleme

Operatörlere İşlev Yükleme Binnur Kurt kurt@ce.itu.edu.tr Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi Operatörler C tip-duyarlı ve -odaklı bir dildir. Her operatör belirli tiplerde operand alır. C de temel tiplerden

Detaylı

OPERATÖRLER Alıştırmalar

OPERATÖRLER Alıştırmalar Bölüm 6 : Operatörler 1 OPERATÖRLER Alıştırmalar Aritmetik Operatörleri Operatör Açıklama Grup + Toplama, artı işleci Đkili Đşlem (binary operator) - Çıkarma, eksi işleci Đkili Đşlem (binary operator)

Detaylı

const objects & const member functions

const objects & const member functions const objects & const member functions Principle of Least Privilege: Bir yazılım parçasına sadece kesin olarak ihtiyac duyulan karadar erişim izni verilmelidir. Bu yolla bir çok muhtemel hata yakalanabilir

Detaylı

C++ Statements. { ve } arasında ifade edilen bir dizi statement bir compound statement (birleşik ifade) oluşturur.

C++ Statements. { ve } arasında ifade edilen bir dizi statement bir compound statement (birleşik ifade) oluşturur. C++ Statements En küçük çalışabilir birime statement (ifade) denir. Statements semicolon (;) ile sonlandırılır. Yalnız başına ; null statement ifade eder Örnek: while (*str++ = *inbuf++) ; { ve } arasında

Detaylı

TEMPLATES. Binnur Kurt kurt@cs.itu.edu.tr. Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1

TEMPLATES. Binnur Kurt kurt@cs.itu.edu.tr. Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1 PARAMETRİKÇOKŞEKİLLİLİK: TEMPLATES Binnur Kurt kurt@cs.itu.edu.tr Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi C++ ile Nesneye Dayalı Programlama 1 Sınıf Yapısı Kalıtım Çok Şekillilik Templates

Detaylı

BTEP243 Ders 3. class Yazım Kuralı:

BTEP243 Ders 3. class Yazım Kuralı: BTEP243 Ders 3 Sınıflar ve Nesneler Nesne tabanlı programlamada, programlamanın temeli sınıflardır (class). Nesnelerin yaratılmasında taslak (blueprint) görevi görür. Sınıflar; o Nesnelerin özelliklerinin

Detaylı

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak:  Published by Juan Soulié Kullanılacak kaynak: http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié C++ Nedir? Arttırılmış C demektir ve C dilinin geliştirilmiş halini yansıtır. C++ öğrenmeden önce herhangi bir programlama

Detaylı

C++ ile Nesneye Dayalı Programlama

C++ ile Nesneye Dayalı Programlama Nesne İşaretçileri Binnur Kurt kurt@cs.itu.edu.tr Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi C++ ile Nesneye Dayalı Programlama 1 Sınıf Yapısı Kalıtım Nesneİşaretçileri Çok Şekillilik

Detaylı

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié DERSİN WEB SİTESİ: http://nucleus.istanbul.edu.tr/~bilprog2/ DeğiĢkenler ve Data Türleri

Detaylı

Stack Islemleri. Postfix ve Infix notasyonlari. Stack ozellikleri

Stack Islemleri. Postfix ve Infix notasyonlari. Stack ozellikleri Veri Yapilari Stacks Stacks Queues Lists Stack nedir Stack de tanimli islemler Push Pop Empty Full Inialization Stack in gerceklestirilmesi 10/7/2004 Veri yapilari 3.1 10/7/2004 Veri yapilari 3.2 Stack

Detaylı

Object-Oriented Oriented Design (OOD) Procedure Based Programlama. OOD Ana Ozellikleri

Object-Oriented Oriented Design (OOD) Procedure Based Programlama. OOD Ana Ozellikleri Procedure Based Programlama Procedural Programming Subprograms, functions/procedures kullanilmak suretiyle programi kisimlara ayirmak. Programlama karmasikligi procedure lar icinde gizlenir Data karmasikligi

Detaylı

10/17/2007 Nesneye Yonelik Programlama 3.1

10/17/2007 Nesneye Yonelik Programlama 3.1 Procedure-Based Programming in C++ Çoğu gerçek dünya problemleri binlerce kod satırı gerektirir ( MS Windows NT 5.0 25 million dan fazla kod satırından oluşmaktadır). Yazılımın tasarımı, kodlanması ve

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş Özlem AYDIN NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü C DİLİNİN BİR ÜST-KÜMESİ OLARAK C++ Genel olarak, C de mevcut olan her şey C++ da da vardır. C dilinde

Detaylı

Nesne İşaretçileri. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. Sınıf Yapısı. Kalıtım Çok Şekillilik

Nesne İşaretçileri. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. Sınıf Yapısı. Kalıtım Çok Şekillilik Binnur Kurt kurt@ce.itu.edu.tr Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi Sınıf Yapısı Kalıtım Çok Şekillilik Nesneye Dayalı Programlama 2 1 İşaretçiler, veri değil, verinin yerleşik bulunduğu

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 11: Bileşim, Arkadaş ve Diğer Araçlar İçerik Bileşim Arkadaş Fonksiyonlar ve Sınıflar Arkadaş Fonksiyonlar Arkadaş Sınıflar Sabit Nesneler Sabit Üye Fonksiyonlar

Detaylı

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar Nesneler ve Türler Sınıflar ve Yapılar Arasındaki Farklılıklar Sınıf Üyeleri Değer ve Referans Türde Olan Aktarımlar Yapıcılar ve Statik Yapıcılar Read-Only Statik Sınıflar Object Sınıfı Sınıflar Sınıflar

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA İŞARETÇİ ELEMANLI SINIFLAR REFERANSLAR OPERATÖRLERİN AŞIRI YÜKLENMESİ ATAMA OPERATÖRÜ Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü İşaretçi Elemanlı Sınıflar

Detaylı

Operator Aşırı Yükleme (Operator OverLoading)

Operator Aşırı Yükleme (Operator OverLoading) Operator Aşırı Yükleme (Operator OverLoading) Operator Aşırı Yükleme Operatör metotları bir nesnenin ifadeler içinde operatörlerle kullanıldığı zaman davranışını belirler. Temel veri türleri için operatörler

Detaylı

BMH-303 Nesneye Yönelik Programlama

BMH-303 Nesneye Yönelik Programlama BMH-303 Nesneye Yönelik Programlama Kurucu metotlar (constructors) ve statik deyimi Dr. Musa ATAŞ Siirt Üniversitesi Bilgisayar Mühendisliği Kurucu Metotlar (Constructors) Kurucu metot çeşitleri Varsayılan

Detaylı

Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü

Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü C ++ Ders 2 Constructor, Destructor lar ve Nesne Yönelimli Programlama Öğeleri ile Nesne Erişim Kontrolü C ++ Constructor - Destructor Fonksiyonların Çağırılması Constructor ve Destructor Fonksiyonlar

Detaylı

Yordamsal Tabanlı Programlama

Yordamsal Tabanlı Programlama Yordamsal Tabanlı Programlama Procedural Programming (Yordamsal Programlama) Subprograms, functions/procedures kullanarak programı kısımlara ayırma prensibiyle çalışır. Programlamadaki karmaşıklık yordamlar

Detaylı

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler Veri Tanımları ve Mantıksal Đşlemler Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Kullanılacak bütün değişkenlerin kullanılmadan önce C derleyicisine bildirilmeleri gerekir.

Detaylı

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin); case 2 : C = 0.5088-0.0011*(B-135); break; case 3 : C = 0.4978-0.0010*(B-145); break; case 4 : C = 0.4878-0.0009*(B-155); break; default : printf("yanlış seçenek\n");} cout

Detaylı

BİLG Dr. Mustafa T. Babagil 1

BİLG Dr. Mustafa T. Babagil 1 BİLG214 20.10.2009 Dr. Mustafa T. Babagil 1 Yapısal bilgi türlerinin tanımlanması. (C++ daki struct yapısı. ) Daha önce öğrenmiş olduğumuz bilgi tipleri char, int ve float v.b. değişkenler ile dizi (array)

Detaylı

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi İÇİNDEKİLER Değişken Nedir? Değişken kullanımı faydaları. Değişken türleri Değişken görünürlüğü (scope) Değişken türleri arası dönüşümler Örnek

Detaylı

Kurucu Fonksiyonlar (Constructors)

Kurucu Fonksiyonlar (Constructors) Kurucu Fonksiyonlar (Constructors) Kurucu fonksiyonlar üyesi oldukları sınıftan bir nesne yaratılırken kendiliğinden canlanırlar. Bu tür fonksiyonlar bir nesnenin kurulması aşamasında yapılması gereken

Detaylı

Mantıksal (Logic) Operatörler

Mantıksal (Logic) Operatörler Mantıksal (Logic) Operatörler Bilgisayar dillerinin hemen hepsinde, program akışını kontrol edebilmek ve yönlendirebilmek için mantıksal operatörler kullanılır. Java dilinde kullanılan mantıksal operatörler

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, C++ İÇİN UFAK HATIRLATMALAR Değişken adları bir harf ile başlamalıdır. (a-z, A-Z). Değişken adı numara içerebilir.

Detaylı

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING)

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING) 1 BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING) LECTURE 3: ASSIGNMENT OPERATOR Lecturer: Burcu Can BBS 514 - Yapısal Programlama (Structured Programming) 2 Lexical Elements (Sözcüksel Elemanlar)

Detaylı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

Detaylı

Operatörlere Yeni İşlevler Yüklenmesi (Operator Overloading)

Operatörlere Yeni İşlevler Yüklenmesi (Operator Overloading) Operatörlere Yeni İşlevler Yüklenmesi (Operator Overloading) C++ da hazır olarak var olan operatörlere (+, -, *, /,!,

Detaylı

C++0x - Sağ Taraf Değerine Bağlanan Referanslar (Rvalue References)

C++0x - Sağ Taraf Değerine Bağlanan Referanslar (Rvalue References) C++0x - Sağ Taraf Değerine Bağlanan Referanslar (Rvalue References) Kaan Aslan 25 Ağustos 2008 C++ a eklenmesine karar verilen yeni bir özellik de sağ taraf değerine bağlanan referanslardır. C++0x standart

Detaylı

#ifndef COMPLEX_H #define COMPLEX_H

#ifndef COMPLEX_H #define COMPLEX_H 16.10.2018 2018-2019 Güz Object-Oriented Programming Lab 03 Ön Çalışma - Bir kompleks sayının genliğini ve açısını hesaplamak için gerekli C/C++ fonksiyonları bulun, kütüphanelerini ve prototiplerini yazın,

Detaylı

mikroc Dili ile Mikrodenetleyici Programlama Ders Notları

mikroc Dili ile Mikrodenetleyici Programlama Ders Notları 4. Operatörler İfade içerisindeki değişken ve diğer ifadelere uygulandığında yeni değerlerin elde edilmesini sağlayan ve kendilerine özel sembolik gösterimleri olan sözdizimleridir. mikroc derleyicisi

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 10: Yapıcı ve Yıkıcı Fonksiyonlar Yapıcı Fonksiyonlar İçerik Yapıcı Fonksiyon Tanımı Üyelere İlk Atama Yapıcı Fonksiyonu Yükleme Yapıcı Fonksiyon Çağırımı Kopya

Detaylı

Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü

Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü Ders 5 Miras Alma Inheritance (Miras) Eski sınıflardan yeni sınıflar yaratılmasıdır. Yeni (türetilmiş) sınıf, eski (kök) sınıfın özellik ve davranışlarını gösterir. Türetilmiş (Derived) sınıf, kök (base)

Detaylı

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi Görsel Programlama Kalıtım, Temel/Alt Sınıf, Temel/Alt Sınıf Tip Dönüşümleri, Temel Sınıf Yapıcıları, super Anahtar Kelimesi, Sınıf Üyesi Görünürlüğü, Statik Üyeler ve Final Üyeler Sınıflar Programcı tarafından

Detaylı

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING)

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING) 1 BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING) 6 LECTURE 10: STRUCTURES Lecturer: Burcu Can BBS 514 - Yapısal Programlama (Structured Programming) Structures (Yapılar) A structure is a collection

Detaylı

Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü

Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü Ders 5 Miras Alma Prof. Dr. M. Serdar ÇELEBİ, İTÜ Inheritance (Miras) Eski sınıflardan yeni sınıflar yaratılmasıdır. Yeni (türetilmiş) sınıf, eski (kök) sınıfın özellik ve davranışlarını gösterir. Türetilmiş

Detaylı

C ++ Ders 6. Çoklubenzesim

C ++ Ders 6. Çoklubenzesim Ders 6 Çoklubenzesim Çoklubenzesim Farkli siniflardaki nesnelerin ayni fonksiyon çagrilmasina farkli sekilde cevap verebilmesini saglar. Sanal fonksiyonlar araciligiyla uygulanir. Kök-siniftan bir pointer

Detaylı

Lambda İfadeleri (Lambda Expressions)

Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri, değişkenlere değer atamak için kullanılan sadeleştirilmiş anonim (isimsiz) fonksiyonlardır. Bu fonksiyonlar matematikteki ve bilgisayar bilimlerindeki

Detaylı

11- FONKSİYONLAR (FUNCTIONS)

11- FONKSİYONLAR (FUNCTIONS) 1 Fonksiyon : Belirli bir işi yapan programın bir isim altına tanımlanarak, o isimle çağrılarak kullanılması. Fonksiyonun faydaları : Programın modülerliğini arttırır. Aynı işi yapan program parçası tekrar

Detaylı

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı C++ Dersi: Nesne Tabanlı Programlama 2. Baskı ³ Bölüm 12: Operatör Yükleme İçerik 12.1 Operatör Yükleme Fonksiyon Tanımı 12.2 Üye Olmayan Fonksiyonlar 12.3 Operatör Yüklemede Arkadas Fonksiyon Kullanımı

Detaylı

Java da İşleçler, Ders #3 (4 Kasım 2009)

Java da İşleçler, Ders #3 (4 Kasım 2009) Java da İşleçler, Kontrol Akış ve Döngü Deyimleri BS-515 Nesneye Yönelik Programlama Ders #3 (4 Kasım 2009) İçerikç Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu

Detaylı

Aritmetik Operatörleri Hemen her programlama dilinde olduğu gibi java dilinde de aritmetik işlemler yaparken aşağıdaki operatörleri kullanırız:

Aritmetik Operatörleri Hemen her programlama dilinde olduğu gibi java dilinde de aritmetik işlemler yaparken aşağıdaki operatörleri kullanırız: Bölüm 06 Operatörler Bu bölümde aşağıdaki konular anlatılacaktır: Aritmetik Operatörleri ++ ve Operatörleri Önel (Prefix) ve Sonal (Postfix) Takılar Atama Operatörleri Đlişkisel Operatörler Mantıksal (Logic)

Detaylı

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama İçerik Java da İşleçler, Kontrol Akış ve Döngü Deyimleri Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu ders: Java da işleçler ( operators ) Java da kontrol-akış

Detaylı

Giri. Program yazmaya balamadan önce

Giri. Program yazmaya balamadan önce Kontrol Yapıları Giri Algoritmalar Pseudocode Kontrol Yapıları if Seçme Yapısı if/else Seçme Yapısı while Tekrar Yapısı Algoritma Düzenleme : Örnek Çalıma 1 (Sayaç Kontrollü Tekrar) Algoritma Düzenleme

Detaylı

KONU 7: DOSYA İŞLEME ( File Processing )

KONU 7: DOSYA İŞLEME ( File Processing ) DERS: PROGRAMLAMA DİLLERİ 1 DÖNEM: 2002-2003 Güz yarı yılı KONU 7: DOSYA İŞLEME ( File Processing ) HEDEFLER: 1- Dosyaları yaratabilme, okuyabilme, yazabilme ve güncelleyebilme 2- Sıralı erişim dosyalarını

Detaylı

BİLG214. 20.10.2009 Dr. Mustafa T. Babagil 1

BİLG214. 20.10.2009 Dr. Mustafa T. Babagil 1 BİLG214 20.10.2009 Dr. Mustafa T. Babagil 1 Yapısal bilgi türlerinin tanımlanması. (C++ daki struct yapısı. ) Daha önce öğrenmiş olduğumuz bilgi tipleri char, int ve float v.b. değişkenler ile dizi (array)

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Genel Bilgiler Ders konuları 1. Programlamaya Giriş 2. Program Denetimi ve Operatörler 3. Nesnelerin

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları METOTLAR Nesneye yönelik programlama dillerinde genellikle fonksiyonlar metot olarak isimlendirilirler. Metot ve fonksiyon olarak ifade edilecek kavramlar aynı anlamda kullanılacaktır. Her çalışan C# programı

Detaylı

Object-Oriented Programming Laboratuvar 10

Object-Oriented Programming Laboratuvar 10 Object-Oriented Programming Laboratuvar 10 12.11.2017 1. Aşağıda declaration ı verilen Time class ının definition ını yazın. Bir Time objesindeki zaman değerini bir saniye arttıran tick metodunu ekleyin.

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA THIS İŞARETÇİSİ, KOPYA YAPICI FONKSİYON, STATİK ELEMANLAR, ARKADAŞ SINIF VE FONKSİYONLAR,NESNE DİZİLERİ

NESNEYE YÖNELİK PROGRAMLAMA THIS İŞARETÇİSİ, KOPYA YAPICI FONKSİYON, STATİK ELEMANLAR, ARKADAŞ SINIF VE FONKSİYONLAR,NESNE DİZİLERİ NESNEYE YÖNELİK PROGRAMLAMA THIS İŞARETÇİSİ, KOPYA YAPICI FONKSİYON, STATİK ELEMANLAR, ARKADAŞ SINIF VE FONKSİYONLAR,NESNE DİZİLERİ Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu

Detaylı

Final Sınavı Soruları Bahar 2018

Final Sınavı Soruları Bahar 2018 Sayfa#1 Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116 Veri Yapıları Dersi Final Sınavı Soruları Bahar 2018 Süre: 70 Dakika Adı ve Soyadı YANIT ANAHTARI Öğrenci Numarası Grubu İmza

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 9: Sınıf İçerik Sınıf Tanımı Nesne Tanımı İkili Kapsam Çözme Operatörü UML ile Sınıfların Gösterimi 2 Sınıf kavramı, nesne-tabanlı programlamanın temelini oluşturur.

Detaylı

BMT 101 Algoritma ve Programlama I 5. Hafta. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I 5. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 5. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Programlamaya Giriş Yük. Müh. Köksal Gündoğdu 2 Programlama Dili Bilgisayar dünyası 1960 lardan bu yana pek çok dille tanıştı.

Detaylı

Bölüm 10 - Yapılar, Birlikler, Bit İşleme ve Sayma Sabitleri (Enumarations)

Bölüm 10 - Yapılar, Birlikler, Bit İşleme ve Sayma Sabitleri (Enumarations) Bölüm 10 - Yapılar, Birlikler, Bit İşleme ve Sayma Sabitleri (Enumarations) 1 Taslak 10.1 Giriş 10.2 Yapı Tanımlamaları 10.3 Yapılara İlk Değer Atamak 10.4 Yapı Elemanlarına Ulaşmak 10.5 Yapıları Fonksiyonlarla

Detaylı

Standard Template Library

Standard Template Library Standard Template Library Uluslararası Bilgisayar Enstitüsü Ege Üniversitesi Ahmet Bilgili & Serkan Ergun STL ANSI/ISO Standard C++ ın içerdiği algoritmalar ANSI/ISO Standard C++ ın içerdiği algoritmalar

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Operand türleri Assembly dili 2 İşlemcinin yapacağı iş makine komutlarıyla belirlenir. İşlemcinin

Detaylı

Programlamaya Giriş Karar Yapıları, Tekrarlı İfadeler(Döngüler)

Programlamaya Giriş Karar Yapıları, Tekrarlı İfadeler(Döngüler) Programlamaya Giriş Karar Yapıları, Tekrarlı İfadeler(Döngüler) Konular Program Blokları Sıra Yapısı Kontrol Yapıları Karar Yapıları (İf) İf/Else İç İçe İf/Else Switch-Case (Çoklu Dallanma Yapıları) Döngüler

Detaylı

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. 1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. [10 puan] int param = 30; int result = 300; if (param > 45) result

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri

Detaylı

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Genel Bilgiler Uzman Mehmet ŞİMŞEK Ofis : Gazi Ünv., Bilgisayar Mühendisliği

Detaylı

VERİ YAPILARI DERS NOTLARI BÖLÜM 4 STACK (YIĞIN, YIĞIT) Yard. Doç. Dr. Deniz KILINÇ

VERİ YAPILARI DERS NOTLARI BÖLÜM 4 STACK (YIĞIN, YIĞIT) Yard. Doç. Dr. Deniz KILINÇ VERİ YAPILARI DERS NOTLARI BÖLÜM 4 STACK (YIĞIN, YIĞIT) Yard. Doç. Dr. Deniz KILINÇ CELAL BAYAR ÜNİVERSİTESİ, YAZILIM MÜHENDİSLİĞİ 2015-2016 1. Tanım Stack, doğrusal artan bir veri yapısı olup; insert

Detaylı

C++ İzmir Ekonomi Üniversitesi Bilgisayar Topluluğu

C++ İzmir Ekonomi Üniversitesi Bilgisayar Topluluğu C++ ve Nesne Programlama'ya Giriş İzmir Ekonomi Üniversitesi Bilgisayar Topluluğu Kaya Oğuz Şubat/Mart 2005 Tamamlanmamış Belge İçin Genel Açıklamalar, Önsöz, İçerik vs. Bu belge, henüz tamam değildir!

Detaylı

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN ESM-361 Mikroişlemciler 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN Bit operatörleri Bit operatörleri bit düzeyinde işlem yapan operatörlerdir; yani sayıları bir bütün olarak değil, bit bit

Detaylı

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama İçerik Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili kavramlar Bu hafta:

Detaylı

C PROGRAMLAMA DİLİNE GİRİŞ

C PROGRAMLAMA DİLİNE GİRİŞ C PROGRAMLAMA DİLİNE GİRİŞ C Dilinin Tarihçesi 1972 de Dennis Ritchie tarafından AT&T Bell Laboratuarlarında B dilinden geliştirildi. C dili konusundaki ilk kitap 1978 de Dennis Ritchie ve Brain Kernighan

Detaylı

Java da Program Denetimi ve Operatörler

Java da Program Denetimi ve Operatörler Java da Program Denetimi ve Operatörler 1 Atamalar int a ; a=4 ; // doğru bir atama 4=a ; // yanlış bir atama! 2 Temel (Primitive) Tiplerde Atama int a, b ; a=4 ; b=5 ; a=b ; Sonuç : a=5, b=5 3 Nesneler

Detaylı

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Ders #2 (2 Kasım 2009) İçerikç Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili

Detaylı

Programlama Dilleri 3

Programlama Dilleri 3 Operatörler 1 Operatör Nedir? Operatörler önceden tanımlanmış birtakım matematiksel ya da mantıksal işlemleri yapmak için kullanılan özel karakterler ya da karakterler topluluğudur. Operatörlerin işlem

Detaylı

Veri Tanımları ve Mantıksal İşlemler

Veri Tanımları ve Mantıksal İşlemler Veri Tanımları ve Mantıksal İşlemler Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Kullanılacak bütün değişkenlerin kullanılmadan önce C derleyicisine bildirilmeleri gerekir.

Detaylı

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1 Java da Program Denetimi ve Operatörler Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1 Atamalar int a ; a=4 ; // doğru bir atama 4=a ; // yanlış bir atama! Altuğ B. Altıntaş 2003 Java ve Yazılım

Detaylı

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Örneğin; bir öğrenci, sıra, çember, bir buton birer nesnedir. Bir

Detaylı

1 JAVASCRIPT NEDİR? 1

1 JAVASCRIPT NEDİR? 1 İÇİNDEKİLER IX İÇİNDEKİLER 1 JAVASCRIPT NEDİR? 1 2 TEST ORTAMINI TANIMAK (FİREFOX VE FİREBUG) 5 Firefox 6 Firebug 8 CSS Sekmesi 10 DOM Sekmesi 11 Net ve Çerezler Sekmeleri 11 Script Sekmesi 11 Konsol Sekmesi

Detaylı

BMT 106 Algoritma ve Programlama II Bahar Dönemi

BMT 106 Algoritma ve Programlama II Bahar Dönemi BMT 106 Algoritma ve Programlama II 2016 2017 Bahar Dönemi DERS AKIŞI 1. C++ a Giriş, Veri Tipleri Yorum Satırı, Bool İfadesi, If Else Kullanımı, If Else Yapısı Örnekleri, Switch Case Yapısı, Operatörler

Detaylı

C++ Hata Düzeneği Güvenliği

C++ Hata Düzeneği Güvenliği C++ Hata Düzeneği Güvenliği (exception safety) Ali Çehreli acehreli@yahoo.com Nesne yaşam süreçleri Hatalar (exceptions) RAII yöntemi Akıllı göstergeler (smart pointers) Hata güvenliği (exception safety)

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 14: Çoklu İşlev İçerik Çoklu İşlevin Gerçekleştirilmesi Saf Sanal Fonksiyonlar ve Soyut Sınıflar Sanal Yıkıcı Fonksiyonlar Statik ve Dinamik Bağlama 2 Çoklu İşlev

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Genel Bilgiler Öğretim üyesi : Doç.Dr.M.Ali Akcayol Ofis : Gazi Ünv., Bilgisayar Mühendisliği

Detaylı

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Yazılım Kodlama ve İ simlendirme Standartları v1.0 Yazılım Kodlama ve İ simlendirme Standartları v1.0 İçerik Yazılım Kodlama ve İsimlendirme Standartları... 2 1. Amaç... Hata! Yer işareti tanımlanmamış. 2. Kapsam... Hata! Yer işareti tanımlanmamış. 3.

Detaylı

C++ Operatörler (Operators)

C++ Operatörler (Operators) C++ Operatörler (Operators) Konular Operatörler o Aritmetiksel (Matematiksel) Operatörler o Karşılaştırma Operatörleri o Mantıksal Operatörler o Atama Operatörleri o Bit Düzeyinde Operatörler o Özel Amaçlı

Detaylı

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 Bölüm 11 Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 11. Bölüm konuları Soyutlama kavramı Veri soyutlamasına giriş Soyut veri tipleri için tasarım konuları Dil örnekleri Parametreli

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

Veri Yapıları ve Algoritmalar 2006-2007 2.dönem

Veri Yapıları ve Algoritmalar 2006-2007 2.dönem Veri Yapıları ve Algoritmalar 2006-2007 2.dönem Öğretim Elemanları: Dr. A. Şima Etaner-Uyar Dr. Gülşen Cebiroğlu-Eryiğit Dersle ilgili bilgiler Ders Kitabı Data Structures and Algorithms in Java, 4th Ed.,

Detaylı

The statement. const Time noon( 12, 0, 0 );

The statement. const Time noon( 12, 0, 0 ); 1 - const (Constant) Objects and const Member Functions Some objects need to be modifiable and some do not. You may use keyword const to specify that an object is not modifiable and that any attempt to

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

Nesne Yönelimli Programlamaya Giriş - 2. Cem Ahmet MERCAN 16/04/2009

Nesne Yönelimli Programlamaya Giriş - 2. Cem Ahmet MERCAN  16/04/2009 Nesne Yönelimli Programlamaya Giriş - 2 Cem Ahmet MERCAN http://www.be.itu.edu.tr/~mercan/ 16/04/2009 Nesne Yönelimli Programlama Kavramlar Class (Sınıf): Nesneyi tanımlayan teorik yapıdır. Nesnenin yetenek

Detaylı

Binnur Kurt kurt@cs.itu.edu.tr. Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1

Binnur Kurt kurt@cs.itu.edu.tr. Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1 ÇOK ŞEKİLLİLİK Binnur Kurt kurt@cs.itu.edu.tr Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi C++ ile Nesneye Dayalı Programlama 1 Sınıf Yapısı Kalıtım Çok Şekillilik C++ ile Nesneye Dayalı

Detaylı

TEMPLATES. Kalıp-Parametrik Çok Şekillilik Nedir? Fonksiyon Kalıbı Tanımlamak. Örnek

TEMPLATES. Kalıp-Parametrik Çok Şekillilik Nedir? Fonksiyon Kalıbı Tanımlamak. Örnek Kalıp-Parametrik Çok Şekillilik Nedir? 10 TEMPLATES Sınıflardaki fonksiyonların gövdeleri incelendiğinde, yapılan işlemler çoğu zaman, üzerinde işlem yapılan verinin tipinden bağımsızdır. Bu durumda fonksiyonun

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA SANAL FONKSİYONLAR VE ÇOK BİÇİMLİLİK Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü GİRİŞ C++, hem derleyici-zamanlı hem de çalışmazamanlı çok biçimliliği destekler.

Detaylı

C++ Programming: Program Design Including Data Structures, Third Edition. Bölüm 3: Giriş/Çıkış

C++ Programming: Program Design Including Data Structures, Third Edition. Bölüm 3: Giriş/Çıkış C++ Programming: Program Design Including Data Structures, Third Edition Bölüm 3: Giriş/Çıkış Bölümün Amaçları Akış (stream) nedir? Girdi/çıktı akışlarının işleyişi Standart bir giriş aygıtından veri okuması

Detaylı

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R Atamalar int a ; a=4 ; // doğru bir atama 4=a ; // yanlış bir atama! Temel Tiplerde Atama Atama işlemi, temel (primitive) tipler için

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon

Detaylı