Bu eğiticide, nesneler ve sınıflar hakkında ve bunları örnekler yardımıyla C ++ 'da nasıl kullanacağımızı öğreneceğiz.
Önceki eğitimlerde, fonksiyonlar ve değişkenler hakkında bilgi edindik. Bazen ilgili işlevleri ve verileri tek bir yere koymak mantıklı ve daha kolay çalışmak istenebilir.
Dikdörtgen bir odanın uzunluğunu, genişliğini ve yüksekliğini saklamamız ve alanını ve hacmini hesaplamamız gerektiğini varsayalım.
Bu görevi işlemek için, fonksiyonları ile birlikte üç değişkeni, diyelim ki, uzunluk, genişlik ve yükseklik oluşturabilir calculateArea()
ve calculateVolume()
.
Bununla birlikte, C ++ 'da, ayrı değişkenler ve işlevler oluşturmak yerine, bu ilgili verileri ve işlevleri tek bir yere ( nesneler oluşturarak ) da sarabiliriz . Bu programlama paradigması, nesne yönelimli programlama olarak bilinir.
Ancak nesneler oluşturup bunları C ++ 'da kullanmadan önce , sınıflar hakkında bilgi edinmemiz gerekiyor .
C ++ Sınıfı
Bir sınıf, nesnenin bir taslağıdır.
Sınıfı bir evin krokisi (prototipi) olarak düşünebiliriz. Katlar, kapılar, pencereler vb. İle ilgili tüm detayları içerir. Bu açıklamalara dayanarak evi inşa ediyoruz. Nesne evdir.
Bir Sınıf Oluşturun
Bir sınıf, C ++ 'da anahtar sözcük ve class
ardından sınıfın adı kullanılarak tanımlanır .
Sınıfın gövdesi, küme parantezleri içinde tanımlanır ve sonunda noktalı virgülle sonlandırılır.
class className ( // some data // some functions );
Örneğin,
class Room ( public: double length; double breadth; double height; double calculateArea()( return length * breadth; ) double calculateVolume()( return length * breadth * height; ) );
Burada adında bir sınıf tanımladık Room
.
Sınıf içinde bildirilen uzunluk, genişlik ve yükseklik değişkenleri veri üyeleri olarak bilinir . Ve işlevler calculateArea()
ve bir sınıfın üye işlevlericalculateVolume()
olarak bilinir .
C ++ Nesneleri
Bir sınıf tanımlandığında, yalnızca nesnenin özelliği tanımlanır; bellek veya depolama tahsis edilmemiştir.
Sınıfta tanımlanan verileri ve erişim işlevlerini kullanmak için nesneler oluşturmamız gerekir.
C ++ 'da Nesneyi Tanımlamak için Sözdizimi
className objectVariableName;
Aşağıdaki gibi Room
sınıf nesneleri (yukarıdaki örnekte tanımlanan) oluşturabiliriz:
// sample function void sampleFunction() ( // create objects Room room1, room2; ) int main()( // create objects Room room3, room4; )
Burada, Room
sınıfın room1 ve room2 adlı iki nesnesi içinde oluşturulur sampleFunction()
. Benzer şekilde, room3 ve room4 nesneleri de oluşturulur main()
.
Gördüğümüz gibi, programın herhangi bir işlevinde bir sınıfın nesnelerini oluşturabiliriz. Ayrıca, sınıfın içinde veya diğer sınıflarda bir sınıfın nesnelerini oluşturabiliriz.
Ayrıca tek bir sınıftan istediğimiz kadar nesne oluşturabiliriz.
C ++ Erişim Veri Üyeleri ve Üye İşlevleri
Bir .
(nokta) operatörü kullanarak bir sınıfın veri üyelerine ve üye işlevlerine erişebiliriz . Örneğin,
room2.calculateArea();
Bu, nesne odası2 calculateArea()
için Room
sınıfın içindeki işlevi çağıracaktır .
Benzer şekilde, veri üyelerine şu şekilde erişilebilir:
room1.length = 5.5;
Bu durumda, oda1'in uzunluk değişkenini olarak başlatır 5.5
.
Örnek 1: C ++ Programlamada Nesne ve Sınıf
// Program to illustrate the working of // objects and class in C++ Programming #include using namespace std; // create a class class Room ( public: double length; double breadth; double height; double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // assign values to data members room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2; // calculate and display the area and volume of the room cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )
Çıktı
Oda Alanı = 1309 Oda Hacmi = 25132.8
Bu programda, Room
bir odanın alanını ve hacmini hesaplamak için sınıfı ve obje odası1'i kullandık.
İçinde main()
uzunluk, genişlik ve yükseklik değerlerini şu kodla atadık:
room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2;
Daha sonra fonksiyonları çağırdık calculateArea()
ve calculateVolume()
gerekli hesaplamaları yaptık .
public
Programda anahtar kelimenin kullanımına dikkat edin . Bu, üyelerin herkese açık olduğu ve programın herhangi bir yerinden erişilebileceği anlamına gelir.
İhtiyaçlarımıza göre, private
anahtar kelimeyi kullanarak özel üyeler de oluşturabiliriz . Bir sınıfın özel üyelerine yalnızca sınıfın içinden erişilebilir. Örneğin,
class Test ( private:
int a; void function1() ( ) public: int b; void function2() ( ) ) Here, a and function1() are private and are. Thus they cannot be accessed from outside the class.
Öte yandan, b ve function2()
programın her yerinden erişilebilir.
Genel ve özel anahtar kelimeler hakkında daha fazla bilgi edinmek için lütfen C ++ Sınıf Erişim Değiştiricileri eğitimimizi ziyaret edin.
Örnek 2: C ++ Sınıfında genel ve özel kullanımı
// Program to illustrate the working of // public and private in C++ Class #include using namespace std; class Room ( private: double length; double breadth; double height; public: // function to initialize private variables void getData(double len, double brth, double hgt) ( length = len; breadth = brth; height = hgt; ) double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // pass the values of private variables as arguments room1.getData(42.5, 30.8, 19.2); cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )
Çıktı
Oda Alanı = 1309 Oda Hacmi = 25132.8
Yukarıdaki örnek, sınıf değişkenlerinin artık özel olması dışında ilk örnekle neredeyse aynıdır.
Değişkenler artık özel olduğundan, onlara doğrudan erişemiyoruz main()
. Bu nedenle, aşağıdaki kodu kullanmak geçersiz olacaktır:
// invalid code obj.length = 42.5; obj.breadth = 30.8; obj.height = 19.2;
Bunun yerine, kamu işlevini kullanın getData()
fonksiyon parametreleri ile özel değişkenleri başlatmak için double len
, double brth
ve double hgt
.
Nesneler ve sınıflar hakkında daha fazla bilgi edinmek için şu konuları ziyaret edin:
- C ++ Oluşturucular
- Bir işlevden bir nesne nasıl iletilir ve döndürülür?