C++0x - Sağ Taraf Değerine Bağlanan Referanslar (Rvalue References)
|
|
- Tülay Erkoç
- 7 yıl önce
- İzleme sayısı:
Transkript
1 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 taslaklarında normal refereranslara sol taraf değerine bağlanan referanslar (lvalue references) denilmektedir. Bu taslaklarda referans terimi hem sağ taraf değerine hem de sol taraf değerine bağlanan referansları kapsayacak biçimde kullanılmaktadır. Sağ taraf değerine bağlanan referanslar dekleratörde && atomu ile bildirilirler: int x; int &a = x; int &&b = foo(); /* normal referans (sol taraf değerine bağlanan referans) */ // sağ taraf değerine bağlanan referans Deklaratördeki && atomlarını ** atomlarına benzeterek referans referansları sanmayın. Bu tamamen başka bir anlama geliyor. Öncelikle normal bir referansa (sol taraf değerine bağlann referansa) verilen ilkdeğerin aynı türden nesne belirten bir ifade (yani sol taraf değeri) olması gerektiğini anımsatalım: int x; int &a = x; int &b = 10; int &c = foo(); Eğer referansa verilen ilkdeğer aynı türden bir nesne belirtmiyorsa referansın const olması gerekir. const olan normal referanslara referansın türüne dönüştürülebilen herahangi bir ifadeyle ilkdeğer verilebilir. Örneğin: double x; int &a = foo(); const int &b = foo(); int &c = 10; const int &c = 10; int &d = x; const int &d = x; 1
2 const olan normal bir referansa kendi türünden nesne belirtmeyen bir ifadeyle ilkdeğer verildiğinde derleyici tarafından geçici bir nesne yaratılır. Verilen ilkdeğer geçici nesneye atanır ve o geçici nesnenin adresi referansa yerleştirilir. Örneğin: double d = 3.2; const int &r = d; İşlemiyle aslında şunlar yapılmaktadır: double d = 3.2; const int temp = d; const int &r = temp; Bu biçimde yaratılan geçici nesnenin ömrü referansın faaliyet alanı ile ilişkilidir. Sağ taraf değerine bağlann referansların (rvalue references) sol taraf değerine bağlanan referanslardan (lvalue references) en önemli farklılığı sağ taraf değerine bağlanan referanslara sağ taraf değeri ile ilkdeğer verilebilmesidir. Bu durumda sağ taraf değerine bağlanan referanslar const olmak zorunda değildir. Yani sol taraf değerine bağlanan referanslara verilen ilkdeğerlerin nesne belirten ifadeler olması gerekirken sağ taraf değeri alan referanslara verilen ilkdeğerler için böyle bir zorunluluk yoktur. Örneğin: int &a = foo(); int &&b = foo(); Sağ taraf değerine bağlanan referanslar sol taraf değerleriyle (nesne belirten ifadelerle) de sağ taraf değeriyle de ilkdeğer verilerek bildirilebilir. Yani sağ taraf değerine bağlanan referanslar kullanım bakımından sol taraf değerine bağlanan referansları kapsamaktadır. Örneğin: int x; int &&a = x; int &&b = foo(); Sağ taraf değerine bağlanan referanslara verilen ilkdeğerler eğer sol taraf değeri ise doğrudan ilgili nesnenin adresi referansa yerleştirilir değilse yine geçici nesne yaratılarak geçici nesnenin adresi referansa yerleştirilir. Ancak yukarıda da belirttiğimiz gibi bu durumda sağ taraf değerine bağlanan referanslar const olmak zorunda değildir ve bu referanslarla geçici nesneler değiştirilebilir. Örneğin: double d = 3.2; int &&r = d; r = 5; // geçici nesne değiştiriliyor 2
3 Sol taraf değerine bağlanan referanslarla sağ taraf değerine bağlanan referanslar farklı türler belirttiklerinden fonksiyonların imzalarını (signatures) değiştirirler. Bu nedenle aynı isimli biri sol taraf değerine bağlanan diğeri sağ taraf değerine bağlanan fonksiyonlar aynı faaliyet alanında birarada bulunabilir. Örneğin: void foo(int &r); void foo(int &&r); Overload resolution işlemi için standart taslaklarına otomatik tür dönüştürmelerinde (implicit type conversions) derece belirlemeye (ranking) yönelik ek bir madde eklenmiştir ( ). Buna göre: e ifadesi T & ve T && türlerine doğrudan dönüştürülebiliyor olsun. Eğer e ifadesi sol taraf değeri belirtiyorsa T & dönüştürmesi, sağ taraf değeri belirtiyorsa T && dönüştürmesi daha iyidir. Örneğin: void foo(const int &r); // 1 void foo(const int &&r); // 2 foo(100); Burada her iki fonksiyon da aday fonksiyondur. 100 sağ taraf değeri olduğu için ikinci fonksiyonun dönüştürme derecesi birinciden daha iyidir. Overload resolution işlemi sonucunda ikinci fonksiyon seçilir. Şimdi de şu örneğe bakınız: void foo(const int &r); // 1 void foo(const int &&r); // 2 int a; foo(a); Burada birinci fonksiyon daha iyi dönüştürme derecesine sahiptir. Overload resolution işlemi sonucunda birinci fonksiyon seçilir. Aşağıdaki örneğe bakınız: void foo(int &r); // 1 void foo(int &&r); // 2 foo(100); Burada zaten birinci fonksiyon aday fonksiyon (candidate function) değildir. Dolayısıyla overload resolution işlemine yalnızca ikinci fonksiyon girer. Sağ taraf değeri belirten bazı ifadeleri anımsatalım: - Sabitler. - Geri dönüş değeri referans olmayan fonksiyon çağrıları. Örneğin: int &&bar(); int &tar(); 3
4 foo() ve bar() sağ taraf değeri belirtir. Fakat tar() ifadesi sol taraf değeri belirtir. (Sağ taraf değeri alan referansların sol taraf değeri belirttiğine fakat fonksiyonun geri dönüş değeri sağ taraf değeri alan referanssa fonksiyon çağırma ifadesinin sağ taraf değeri belirttiğine dikkat ediniz.) - Geçici nesneler. Örneğin: class X ; X() ifadesi sağ taraf değeridir. - Çeşitli operatörlerle oluşturulan ifadeler. Örneğin: int a, b; a + b ifadesi sağ taraf değeri belirtir. Sınıfların static olmayan üye fonksiyonlarına geçirilen this parametreleri overload resolution işleminde referans olarak ele alınmaktadır. Bu referans fonksiyonun ilk parametresini oluşturur. Bu parametreye gizli nesne parametresi (implicit object parameter) diyeceğiz. Bu durumda fonksiyonun çağrıldığı nesne de bu parametreye karşı gelen argümandır. Bu argümana da gizli nesne argümanı (implicit object argument) diyeceğiz. C++0x te üye fonksiyonların gizli nesne parametreleri sağ taraf değeri alan referans ya da sol taraf değeri alan referans yapılabilir. Örneğin: class Sample public: void foo() &; void foo() &&; ; Gördüğünüz gibi bu belirlemeyi yapmak için deklaratörde fonksiyonun parametre parantezinden sonra & ya da && atomları yerleştirilir. & ve && belirleyicileri fonksiyonun imzasını değiştirmektedir. Bu belirleyicilerin tanımlama sırasında da kullanılması gerektiğini belirtelim. Böylece bu iki fonksiyon overload resolution işleminde farklı etkilere yol açar. Örneğin: Sample s; Sample().foo(); s.foo(); // foo() && çağrılır // foo() & çağrılır & belirleyicisini belirtmekle belirtmemek aynı anlamdadır. Yani default durum zaten gizli nesne parametresinin sol taraf değeri alan referans olmasıdır. Burada dikkat edilmesi gereken nokta şudur: Sol taraf değeri alan gizli nesne parametresine sahip üye fonksiyon sağ taraf değeri belirten nesneyle çağrılabilir. Yani: 4
5 class Sample public: void foo() &; ; Sample().foo(); Gizli nesne parametresinin sol taraf değeri ya da sağ taraf değeri belirtmesi sınıfta hem & hem de && belirleyicili aynı isimli fonksiyon bulunduğu zaman farklılık oluşmaktadır. Peki sağ taraf değeri alan referanslara neden gereksinim duyulmuştur? Yanıt oldukça basit: Taşıma düzeneğini (move semantics) sağlamak için. Aşağıdaki örneği inceleyiniz: std::vector<int> func() std::vector<int> a; // elemanlar ekleniyor return a; std::vector<int> b; b = func(); /* kopya başlangıç fonksiyonu ve kopya atama operatör fonksiyonu çağrılacak */ Burada b = func() işlemiyle önce fonksiyonun geri dönüş değeri için geçici nesne yaratılacak ve bu nesne için kopya başlangıç fonksiyonu (copy constructor) çağrılacak, daha sonra b ataması için bu kez kopya atama operatör fonksiyonu çağrılacaktır. Halbuki return işlemi ile yaratılacak geçici vector<int> nesnesi doğrudan yerel nesne tarafından tahsis edilmiş olan alanı kullanabilirdi ve benzer biçimde b ye atama işleminde yine taşıma yapılarak bu alan b ye aktarılabilirdi. Taşıma düzeneğini oluşturabilmek için X gibi bir sınıfa X && parametreli bir başlangıç fonksiyonunun ve atama operatör fonksiyonunun yerleştirilmesi gerekir. Sınıfın X && parametreli başlangıç fonksiyonuna taşıma başlangıç fonksiyonu (move constructor), X && parametreli operatör fonksiyonuna taşıma operatör fonksiyonu (move assignment operator) denilmektedir. Taşıma düzeneği için düşünülmüş olan move isimli fonksiyon şablonu da önemli bir işleve sahiptir: template <class T> T &&move(t &&a) return a; 5
6 Bu fonksiyonun yaptığı tek şey argüman olarak aldığı ifadeyi sağ taraf değeri olarak vermektir. Böylece elimizde bir sol taraf değeri varsa biz onu hiç değiştirmeden sağ taraf değerine dönüştürebiliriz. Örneğin: template <class T> void swap(t &a, T &b) T tmp(std::move(a)); a = std::move(b); b = std::move(tmp); Öncelikle taşıma mekanizmasının anlaşılması gerekiyor. Bunun için basit bir örnek vermek istiyoruz. Örneğin anlaşılabilir olması için özellikle şablon kullanmamayı tercih ediyoruz: #include <iostream> #include <cstdlib> #include <algorithm> #include <utility> using namespace std; class IntArray public: IntArray() : m_parray(0), m_size(0) IntArray(std::size_t size) : m_parray(new int[size]), m_size(size) ~IntArray() delete [] m_parray; // Kopya başlangıç fonksiyonu IntArray(const IntArray &r) m_parray = new int[r.m_size]; std::copy(r.m_parray, r.m_parray + r.m_size, m_parray); // Taşıma başlangıç fonksiyonu IntArray(IntArray &&r) m_parray = r.m_parray; r.m_parray = 0; 6
7 // Kopya atama operatör fonksiyonu IntArray &operator =(const IntArray &r) if (&r!= this) delete [] m_parray; m_parray = new int[r.m_size]; std::copy(r.m_parray, r.m_parray + r.m_size, m_parray); return *this; // Taşıma atama operatör fonksiyonu IntArray &operator =(IntArray &&r) std::swap(m_parray, r.m_parray); std::swap(m_size, r.m_size); return *this; int &operator [](std::size_t index) return m_parray[index]; int size() const return m_size; private: int *m_parray; std::size_t m_size; ; Örneğimizde int türden bir diziyi temsil eden IntArray isimli bir sınıf görüyorsunuz. Sınıfın kopya başlangıç fonksiyonu int türden dinamik bir dizi tahsis ederek parametresiyle aldığı sınıfın dizi elemanlarını bu alana kopyalamaktadır. IntArray(const IntArray &r) m_parray = new int[r.m_size]; std::copy(r.m_parray, r.m_parray + r.m_size, m_parray); IntArray nesnesini IntArray türünden bir sol taraf değeri ile ilkdeğer vererek yaratırsak bu başlangıç fonksiyonu çalıştırılacaktır. Şimdi taşıma başlangıç fonksiyonuna bakınız: 7
8 IntArray(IntArray &&r) m_parray = r.m_parray; r.m_parray = 0; taşıma işleminden sonra ilkdeğer verilen nesnenin m_parray elemanına NULL adres sabitinin atandığına dikkat ediniz. Şimdi taşıma başlangıç fonksiyonunu kullanalım: IntArray a(10); for (int i = 0; i < 10; ++i) a[i] = i; Bu işlemlerden sonra a nesnesi şöyle olacaktır: IntArray b = a; Şimdi olanları inceleyelim: Artık a nesnesinin m_parray elemanında NULL adres var. (NULL adrese delete işlemi uygulamanın bir sakıncası olmadığını anımsayınız.) Gördüğünüz gibi taşıma işlemi gerçekleştirilmiş, gereksiz bir biçimde tahsisat ve kopyalama yapılmamıştır. Şimdi atama operatör fonksiyonuna bakınız: 8
9 IntArray &operator =(const IntArray &r) if (&r!= this) delete [] m_parray; m_parray = new int[r.m_size]; std::copy(r.m_parray, r.m_parray + r.m_size, m_parray); Burada klasik işlemlerin yapıldığını görüyorsunuz. Önce eski dizi serbest bırakılmış, sonra yeni dizi için yer tahsis edilmiş ve yeni diziye kopyalama yapılmıştır. Şimdi de taşıma operatör fonksiyonunu inceleyiniz: IntArray &operator =(IntArray &&r) std::swap(m_parray, r.m_parray); std::swap(m_size, r.m_size); return *this; Burada ise std::swap fonksiyonuyla m_parray ve m_size değerlerinin yer değiştirildiğini görüyorsunuz. Bunun anlamı nedir? Aşağıdaki örnekle açıklayalım: IntArray foo() IntArray a(10); for (int i = 0; i < 10; ++i) a[i] = i; return a; int main(int argc, char** argv) IntArray b(5); for (int i = 0; i < 10; ++i) b[i] = -i; b = foo(); for (int i = 0; i < b.size(); ++i) cout << b[i] << endl; return 0; Burada b = foo() işlemine odaklanınız. Bu işlemle taşıma operator fonksiyonu çağrılacak değil mi? foo fonksiyonunun geri döndürdüğü nesneye temp diyelim. Önce main fonksiyonunda a nesnesi yaratıldığında şöyle bir durum oluşacaktır: 9
10 Şimdi foo fonksiyonunun çağrılmasıyla yaratılan geçici nesneyi betimleyelim: Şimdi de b = foo() işlemi sonucunda olanlara bakalım: Burada veri elemanlarının karşılıklı yer değiştirmesi ile b nin m_parray elemanı temp in m_parray elemanı haline gelmiştir. temp için çağrılacak bitiş fonksiyonu b nin gösterdiği eski alanı serbest bırakacaktır. Sağ taraf değerine bağlanan referaslar kopyalanamayan bazı türlerin taşınmasını (movable but not copyable types) mümkün hale de getirebilmektedir. Örneğin bir fstream nesnesinin kopyalanması anlamlı değildir fakat taşınması anlamlı olabilir. 10
11 Kaynaklar Hinnant, H. (2006). A Proposal to Add an Rvalue Reference to the C++ Language - Revision 3. html adresinden alınmıştır. Hinnant, H., Abrahams, D., & Dimov, P. (2004). A Proposal to Add an Rvalue Reference to the C++ Language. papers/2004/n1690.htm Hinnant, H., Stroustrup, B., & Kozicki, B. (2008). A Brief Introduction to RValue References. adresinden alınmıştır. Working Draft, Standard for Programming Language C++ (N2798= ). (2008). adresinden alınmıştır. 11
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ı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ı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ı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ı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ı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ıC++11'in Bazı Yenilikleri ve D'deki Karşılıkları
C++11'in Bazı Yenilikleri ve D'deki Karşılıkları Ali Çehreli 30 Haziran 2012; Tütev, Ankara http://ddili.org 1 C++11 Kısaltmalar: İlk standart: C++98 2003'teki technical report'un eklenmiş hali: C++03
Detaylı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ı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ı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ı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ıC++ Dersi: Nesne Tabanlı Programlama
C++ Dersi: Nesne Tabanlı Programlama Bölüm 6: Diziler İçerik Diziler Dizi Elemanlarına İlk Atama Diziler ve Fonksiyonlar İki Boyutlu Diziler İki Boyutlu Dizi Tanımı İki Boyutlu Dizi Elemanlarına Erişim
Detaylı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ıDizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.
Diziler Dizi Nedir Ortak özelliğe sahip birden fazla bilginin oluşturduğu bütün bilgi kümelerine veya hafızada art arda sıralanmış aynı türden verilerin oluşturduğu yapıya dizi denir. Kısaca; Bellekte
DetaylıUzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor
Detaylı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ı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ı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ş
Ö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ıNESNEYE YÖNELİK PROGRAMLAMA
NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem
DetaylıC++ Dersi: Nesne Tabanlı Programlama
C++ Dersi: Nesne Tabanlı Programlama Bölüm 7: Yapılar Diziler İçerik Yapıların Tanımı Yapılara İlk Değer Atama Yapı Elemanlarına Erişim İç içe Yapılar Yapılar ve Fonksiyonlar 2 Yapılar (structures) içinde
Detaylı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ıÖnemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance
Önemli noktalar Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance public class Test { // çalışır İnsan insan = new Çiçekçi();
DetaylıStatik veri üyeleri sınıf dosyası içerisinde, ancak sınıf bildirimi dışında başlatılmalıdır. Statik üye fonksiyonları
Statik Veri Üye ve Metotlar Genel olarak bir sınıfa ait nesnelerin verileri bellekte farklı bölgelerde yer alır. Ancak bazı durumlarda, belirli bir üyenin ortak bir alanda tek bir kopyasının bulunması
DetaylıNESNEYE YÖNELİK PROGRAMLAMA SINIFLAR
NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu sunumda Prof. Dr. Yılmaz KILIÇASLAN ın Nesneye Yönelik Programlama dersi sunumlarından faydalanılmıştır.
DetaylıYZM 2105 Nesneye Yönelik Programlama
YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 5 Nesneye Yönelik Programlamaya Giriş Bu
Detaylı#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ı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ıC++ Dersi: Nesne Tabanlı Programlama
C++ Dersi: Nesne Tabanlı Programlama Bölüm 5: Fonksiyonlar İçerik Standart Kütüphane Fonksiyonları Kullanıcı Tarafından Tanımlanan Fonksiyonlar Fonksiyon Tanımı Fonksiyon Prototipi void Fonksiyonları Parametreli
DetaylıPointer Kavramı. Veri Yapıları
Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar
Detaylı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ı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ı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ıC++ Dersi: Nesne Tabanlı Programlama 2. Baskı
C++ Dersi: Nesne Tabanlı Programlama 2. Baskı ³ Bölüm 19: Standart Şablon Kütüphanesi (vector) İçerik 19.1 Standart Şablon Kütüphanesi (STL) 19.2 vector SınıK 19.3 vectortanımı 19.4 vector Elemanlarına
DetaylıFall Object-Oriented Programming Laboratory 02 - Structures
2017-2018 Fall Object-Oriented Programming Laboratory 02 - Structures 10.10.2017 1. Diziler. Bir tamsayi dizisinin elemanlarını ekrana yazdırmak için void printarr(int arr[], int elem_count) prototipli
DetaylıÖrnek1: #include <iostream> #include <string> using namespace std;
BTEP243 Ders 5 Nesne İşaretçileri İşaretçiler, bildiğiniz gibi bir değişkenin bellekte tutuldukları yerin adresini tutarlar. Nesne işareçtileri konusundaki işaretçiler, nesnelerin bellek üzerinde bulundukları
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. Örneğin; bir öğrenci, sıra, çember, bir buton birer nesnedir. Bir
DetaylıGenel Programlama II
Genel Programlama II 22.03.2011 1 Yapılar ( Structures ) Yapılar ( structures ); tam sayı, karakter vb. veri tiplerini gruplayıp, tek bir çatı altında toplar. Bu gruplandırma içinde aynı ya da farklı veri
Detaylı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ıC, C++, C# ve Java'da enum Türleri ve Sabitleri Benzerlikler ve Farklılıklar
C, C++, C# ve Java'da enum Türleri ve Sabitleri Benzerlikler ve Farklılıklar Kaan Aslan 3 Mart 2012 1. Giriş Bazen programlarımızda haftanın günleri, yılın ayları, renkler, yönler gibi sınırlı sayıda değer
DetaylıDiziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU
Diziler Yrd.Doç.Dr.Bülent ÇOBANOĞLU Dizi (Array) Nedir? Bellekte sürekli yer kaplayan artarda sıralanmış aynı türden verilerin oluşturduğu kümeye dizi (array) denir. Dizi, çok fazla miktardaki tek tip
DetaylıProgramlama Dilleri 3
Diziler (Arrays) 1 Dizi Kavramı Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların
DetaylıTemel Veri Yapıları. (Veri Yapıları 1. Bölüm)
Temel Veri Yapıları (Veri Yapıları 1. Bölüm) Kaan Aslan 10 Haziran 2013 1. Giriş Programlarımızda tanımladığımız nesneler ya tek parçadan ya da birden fazla parçadan oluşurlar. Tek parçadan oluşan nesnelerin
DetaylıKonular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI
BLG339 PROGRAMLAMA DİLLERİ KAVRAMI Hafta 5 Veri Tipleri (Devam) Yrd. Doç. Dr. Melike Şah Direkoğlu Konular Dizi Tipleri Kayıt Tipleri Birleşik Tipler Küme Tipleri İşaretçi ve Referans Tipleri Alındığı
DetaylıString ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü
String ve Karakter Dizileri #include Temel giriş çıkış akımları nesnelerinin tanımlandığı kütüphanedir. cin,cout,cerr,clog, wcin,wcout,wcerr,wclog nesneleri içerir. using namespace std; //std
Detaylı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ı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ı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ıPointers (İşaretçiler)
Pointers (İşaretçiler) Pointers (İşaretçiler) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ile ilişkilidir. Donanımsal açıdan
Detaylı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ı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ı#ifndef FATURA_H #define FATURA_H
06.10.2018 2018-2019 Güz Object-Oriented Programming Lab 06 Ön Çalışma - Uygulamanın 1. ve 2. sorularında istenen fatura ve mevduat class ları için constructor metodunun (.cpp syasındaki) tanımını ve static
DetaylıProgramlama Dilleri III 1
Temel Veri Türleri Programlama Dilleri III 1 İlk C# Programı class ilk_program1 static void Main() System.Console.WriteLine("Merhaba C#"); C# dilinde yazılmış kaynak kod dosyalarının uzantıları.cs dır.
DetaylıNesne Yönelimli Programlama
1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya
Detaylı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ıYrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,
DetaylıBM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta
Ön bilgi: Özyineli fonksiyon tanımlanabilmeli. Dizilerin fonksiyon parametresi veya geri dönüş değeri olarak kullanımı bilinmeli. 1. Klavyeden girilen sayı n olmak üzere [1..n] aralığındaki sayıların toplamı
DetaylıKOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ
KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRONİK VE HABERLEŞME MÜHENDİSLİĞİ Nesneye Yönelik Programlama C++ ile Beaglebone Black de Bluetooth Haberleşmesi Danışman: Yrd. Doç. Dr. Mehmet YAKUT Sinan
Detaylı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ı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ıBLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)
1 BLM 112- Programlama Dilleri II Hafta 5 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan Hiç hata yapmayan insan, hiçbir şey yapmayan insandır. Ve hayatta en büyük hata, kendini hatasız sanmaktır. ~Y.
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 11. Bölüm konuları Soyutlama kavramı Veri soyutlamasına giriş Soyut veri tipleri için tasarım konuları Dil örnekleri Parametreli
DetaylıBLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler
BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Nesne Bellekte yer kaplayan ve içeriklerine
DetaylıTemel Bilgisayar Programlama Final Sınavı Çalışma Notları
Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak
DetaylıUpgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals
The European Union s Making the Labour Market more Inclusive III programme For North Cyprus Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals Module
DetaylıBMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler
BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin
DetaylıDİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II
DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II DİZİLER Dizi, aynı tipteki verilere tek bir isimle erişmek için kullanılan bir kümedir. Bir dizi bildirildikten sonra, dizinin bütün elemanları bellekte peşpeşe
Detaylı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ıALGORİTMA VE PROGRAMLAMA II
ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 İşaretçiler ve Diziler Fonksiyon
Detaylı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ı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ıNESNEYE YÖNELİK PROGRAMLAMA
NESNEYE YÖNELİK PROGRAMLAMA KALITIM Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu sunumda Prof. Dr. Yılmaz KILIÇASLAN ın Nesneye Yönelik Programlama dersi sunumlarından faydalanılmıştır.
DetaylıYAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta
YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin
DetaylıFonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {
Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel
Detaylı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ı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ı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ı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ıNesne Tabanlı Programlama
Nesne Tabanlı Programlama Ders Notu - 3 Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Sınıflar ve Fonksiyonlar Tekrar kullanılabilir kodlar 1 Nesne Tabanlı Tasarım
DetaylıOperatörlerin Aşırı Yüklenmesi
Operatörlerin Aşırı Yüklenmesi Operatörlerin Aşırı Yüklenmesi Tıpkı fonksiyonlara yaptığımız gibi öperatörlere de aşırı yükleme yapabiliriz.yani, operatörlere normal görevlerinin yanında farklı görevler
Detaylı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ıKarakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır
stringh floath Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır 32 Sorgulama İfadesi - if Deyimi (5 Hafta) Bu deyim sorgulamanın tek basamakta yapılacağı yerlerde
DetaylıTemel Bilgisayar Bilimleri Ders Notu #4-2. kısım
Nisan 2009 9031150 - Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım Referans: Bugün: 1. Ders Notları. Ders #4.1 Tekrar Dowhile ve for döngüleri Diziler Göstergeler 1. Tekrar for döngüleri Genel yazılımı
DetaylıDizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.
Diziler Dizi Nedir Ortak özelliğe sahip birden fazla bilginin oluşturduğu bütün bilgi kümelerine veya hafızada art arda sıralanmış aynı türden verilerin oluşturduğu yapıya dizi denir. Kısaca; Bellekte
DetaylıVeri Yapıları Lab Notları 1
C++ Programlama Dili Veri Yapıları Lab Notları 1 C++ dili, hızlı ve düşük seviye özelliklere erişmek isteyen uygulamaların yazılması için popüler bir dildir. C programlama diline birçok ekstra özellik
DetaylıHafta 12 Karakter Tutan Diziler
BLM111 Programlama Dilleri I Hafta 12 Karakter Tutan Diziler Yrd. Doç. Dr. Caner ÖZCAN Katar (String) Tanımlama Dizileri ve çok boyutlu dizileri gördük. Katar dediğimiz şey de aslında bir dizidir. Değişken
DetaylıBİLİNİRLİK ALANI ve ÖMÜR, KONTROL DEYİMLERİ
BİLİNİRLİK ALANI ve ÖMÜR, KONTROL DEYİMLERİ Kaynak: C ve Sistem Programcıları Derneği Kurs notu Öğr.Gör.Dr. Mahmut YALÇIN Bilinirlik Alanı Bilinirlik alanı (scope), bir ismin tanınabildiği program aralığıdır.
Detaylı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ıÖrnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar Değer Döndüren Fonksiyonlar Çok Parametreli Fonksiyonlar Değişken Kapsamları Çok Fonksiyonlu Programlar Fonksiyon Tanımı Karmaşıkveuzunprogramları,
Detaylı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ı5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi
5.HAFTA Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi Sınıf Kavramı: Sınıf (class) soyut bir veri tipidir. Nesne (object) onun somutlaşan bir cismidir. Java da sınıf (class) kavramını
DetaylıSP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'
Bu Derste Öğrenecekleriniz: 1- Veri Tabanı Adı Değiştirme 2- Nesnelerin Adını Değiştirme a. Tablo Adı Değiştirme b. Alan Adı Değiştirme c. Constraint (Kısıtlama) Adı Değiştirme 3- Tablo Düzenleme Komutları
DetaylıYrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonu Referans ile Çağırma (Call by Reference) Bir fonksiyona gönderilen parametrenin normalde değeri değişmez. Fonksiyon içinde yapılan işlemlerin hiçbiri argüman değişkeni
Detaylı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ıNesneye Yönelik Programlama (OOP) 7.Hafta
Nesneye Yönelik Programlama (OOP) 7.Hafta Örnek : Yapılar vs Sınıflar Yapılar ve sınıflar büyük oranda benzerlik gösterirler. Yapıların sakladığı veriler her zaman public yani erişime açıktır. Sınıflarda
DetaylıSunum İçeriği. Programlamaya Giriş 22.03.2011
Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon
DetaylıNESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2
NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 JAVA DA PROGRAM DENETİMİ VE OPERATÖRLER Java programlama dilinde temel tipleri ve nesneleri yönlendirmek ve değiştirmek için operatörler kullanılır. Atamalar sağ taraftaki
DetaylıDERSİN WEB SİTESİ:
BİLGİSAYAR PROGRAMLAMA II C++ Programlamaya Giriş http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié THEORY AND PROBLEMS of PROGRAMMING WITH C++ Second Edition JOHN R. HUBBARD, Ph.D. Professor
DetaylıRSA ANAHTAR DAĞITIMI VE RSA İLE DİJİTAL İMZA OLUŞTURMA
RSA ANAHTAR DAĞITIMI VE RSA İLE DİJİTAL İMZA OLUŞTURMA İlk defa 1977 yılında Ron Rivest, Adi Shamir ve Leonard Adleman tarafından oluşturulan RSA algoritması geliştiricilerinin soyisimlerinin ilk harfleriyle
Detaylı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ı