C++ Operator Örneklerle Aşırı Yükleme

Nedir? OperaTor Aşırı Yükleniyor mu?

kullanma operatör aşırı yüklenmesi in C++, bir kapsamda bir operatör için birden fazla anlam belirtebilirsiniz. Operatör aşırı yüklemesinin amacı, kullanıcı tanımlı bir veri türü için bir operatörün özel bir anlamını sağlamaktır.

Operatör aşırı yüklemesinin yardımıyla, çoğunluğu yeniden tanımlayabilirsiniz. C++ operatörler. Ayrıca, tek bir operatör kullanarak farklı işlemler gerçekleştirmek için operatör aşırı yüklemesini de kullanabilirsiniz.

Sözdizimi

Aşırı yüklemek için C++ operatörü için, Sınıf içerisinde aşağıdaki gibi özel bir fonksiyon tanımlamanız gerekir:

class class_name
{
    ... .. ...
    public
       return_type operator symbol (argument(s))
       {
           ... .. ...
       } 
    ... .. ...
};

Yukarıdaki sözdizimi için bir açıklama:

  • return_type işlevin dönüş türüdür.
  • Daha sonra operatör anahtar sözcüğünden bahsedersiniz.
  • Sembol, aşırı yüklenecek operatör sembolünü belirtir. Örneğin +, -, <, ++.
  • Argüman(lar) operatör işlevine, işlevlerle aynı şekilde iletilebilir.

Örnek 1

#include <iostream>
using namespace std;
class TestClass {
private:
	int count;
public:
	TestClass() : count(5) {}
	void operator --() {
		count = count - 3;
	}
	void Display() { 

		cout << "Count: " << count; }
};

int main() {
	TestClass tc;
	--tc;
	tc.Display();
	return 0;
}

Çıktı:

 OperaTor Aşırı Yükleniyor

İşte kodun ekran görüntüsü:

 OperaTor Aşırı Yükleniyor

Kod Açıklaması:

  1. İşlevlerini kullanmak için iostream başlık dosyasını kodumuza dahil ediyoruz.
  2. Sınıflarını çağırmadan kullanmak için programımıza std ad alanını ekleyin.
  3. TestClass adlı bir sınıf oluşturun.
  4. Bir sınıf üyesini özel olarak erişilebilir olarak işaretleyen özel erişim değiştiriciyi kullanın.
  5. Bir tamsayı değişken sayısı oluşturun. Bu değişkene özel olarak erişilebilecek.
  6. Bir sınıf üyesini özel olarak erişilebilir olarak işaretleyen genel erişim değiştiricisini kullanın.
  7. Değişken sayacını 5 olarak başlatmak için bir sınıf yapıcısı kullanın.
  8. — operatörünün anlamını aşırı yükleme.
  9. Operatör x değişkeninin değerini 1 azaltacaktır.
  10. Operatör aşırı yükleme bölümünün sonu. Operatöre yeni bir isim verildi.
  11. Display() fonksiyonu adında bir fonksiyon tanımlama.
  12. Display() işlevi çağrıldığında değişken count değerini konsoldaki diğer metinlerin yanında yazdırın. }, Display() işlevinin gövdesinin sonunu işaretler.
  13. Sınıf gövdesinin sonu.
  14. Main() işlevini çağırın. Bu fonksiyonun içerisine program mantığı eklenmelidir.
  15. TestClass sınıfının bir örneğini oluşturun ve ona tc adını verin.
  16. Bu, void operatörü –() fonksiyonunu çağıracaktır.
  17. Display() işlevini çağırmak için TestClass Sınıfının duruşunu kullanın.
  18. İşlev başarıyla tamamlandıktan sonra değeri döndürmelidir.
  19. main() fonksiyonunun gövdesinin sonu.

Farklı Yaklaşımlar Operator Aşırı yükleme C++

Aşağıdaki işlev türlerinden herhangi birini uygulayarak operatör aşırı yüklemesi gerçekleştirebilirsiniz:

  1. Üye İşlevi
  2. Üye Olmayan Fonksiyon
  3. Arkadaş İşlevi
  • Operatör aşırı yükleme işlevi, Sol işlenen Sınıfın bir nesnesi olduğunda bir üye işlev olabilir.
  • Sol işlenen farklı olduğunda, Operator aşırı yükleme işlevi üye olmayan bir işlev olmalıdır.

Özel ve korumalı sınıf üyelerine erişmesi gerekiyorsa, operatör aşırı yükleme işlevini bir arkadaş işlevi haline getirebilirsiniz.

Herkes yapabilir C++ OperaTors Aşırı Yüklenebilir mi?

Hayır. Var C++ aşırı yüklenemeyen operatörler.

Bunlar:

  • :: -Kapsam çözümleme operatörü
  • ?: -üçlü operatör.
  • . -üye seçici
  • Operatör boyutu
  • * -üye işaretçi seçici

Hatırlanacak şeyler

  1. Operatörün aşırı yüklenmesiyle, bir operatörün yalnızca kullanıcı tanımlı türler (nesneler, yapılar) için çalışma şeklini yeniden tanımlayabilirsiniz. Yerleşik türler (float, char, int vb.) için kullanamazsınız.
  2. = ve & C++ operatörler varsayılan olarak aşırı yüklenir. Örneğin, aynı Sınıfın nesnelerini doğrudan = operatörünü kullanarak kopyalayabilirsiniz.
  3. Operator önceliği, operatörlerin ilişkisel ve önceliğini değiştirmez. Ancak, parantez kullanarak değerlendirme sırasını değiştirebilirsiniz.
  4. Aşırı yüklenemeyecek dört operatör vardır C++Bunlara kapsam çözümleme operatörü (::), üye seçim operatörü (.), fonksiyona işaretçi aracılığıyla üye seçimi operatörü (.*) ve üçlü operatör (?:) dahildir.

Kuralları OperaTor Aşırı Yükleniyor

İşte kurallar Operaaşırı yükleme:

  • Çalışması için en az bir işlenenin kullanıcı tanımlı bir sınıf nesnesi olması gerekir.
  • Yalnızca mevcut operatörleri aşırı yükleyebilirsiniz. Yeni operatörlere aşırı yükleme yapamazsınız.
  • Bazı operatörler arkadaş işlevi kullanılarak aşırı yüklenemez. Ancak bu tür operatörler üye işlevi kullanılarak aşırı yüklenebilir.

Aşırı Yükleme Nasıl Yapılır? Operator

Örnek 1

#include <iostream>   
using namespace std;
class OperatorOverload {
private:
	int x;

public:
	OperatorOverload() : x(10) {}
	void operator ++() {
		x = x + 2;
	}
	void Print() {
		cout << "The Count is: " << x;
		}
};
int main() {
	OperatorOverload ov;
	++ov;   
	ov.Print();
	return 0;
}

Çıktı:

Aşırı yük Operator Örnek

İşte kodun ekran görüntüsü:

Aşırı yük Operator Örnek

Kod Açıklaması:

  1. İşlevlerini kullanmak için iostream başlık dosyasını kodumuza dahil ediyoruz.
  2. Sınıflarını çağırmadan kullanmak için programımıza std ad alanını ekleyin.
  3. Adlı bir sınıf oluşturun OperaTorAşırı Yük.
  4. Bir sınıf üyesini özel olarak erişilebilir olarak işaretleyen özel erişim değiştiriciyi kullanın.
  5. Bir tamsayı değişkeni x oluşturun. Bu değişkene özel olarak erişilebilecek.
  6. Bir sınıf üyesini özel olarak erişilebilir olarak işaretleyen genel erişim değiştiricisini kullanın.
  7. X değişkenini 10'a başlatmak için bir sınıf yapıcısı kullanın.
  8. ++ operatörünün anlamını aşırı yükleyin.
  9. Operatör x değişkeninin değerini 2 artıracaktır.
  10. Operatör aşırı yükleme bölümünün sonu. Operatöre yeni bir isim verildi.
  11. Print() işlevinin çağrılması.
  12. Print() işlevi çağrıldığında x değişkeninin değerini konsoldaki diğer metinlerin yanında yazdırın.
  13. Print() işlevinin gövdesinin sonu.
  14. Sınıf gövdesinin sonu.
  15. Main() işlevini çağırın. Bu fonksiyonun içerisine program mantığı eklenmelidir.
  16. Bir örneğini oluşturun OperatorOverload Sınıfı ov olarak adlandırıldı.
  17. Bu void operatörü ++() fonksiyonunu çağıracaktır.
  18. duruşunu kullanın OperaPrint() işlevini çağırmak için torOverload sınıfını kullanın.
  19. İşlev başarıyla tamamlandıktan sonra değeri döndürmelidir.
  20. main() fonksiyonunun gövdesinin sonu.

Örnek 2

#include<iostream> 
using namespace std;

class TestClass {
private:
	int real, over;
public:
	TestClass(int rl = 0, int ov = 0) {
		real = rl;
		over = ov;
	}

	TestClass operator + (TestClass const &obj) {
		TestClass result;
		result.real = real + obj.real;
		result.over = over + obj.over;
		return result;
	}
	void print() {
		cout << real << " + i" << over << endl;
	}
};
int main()
{
	TestClass c1(9, 5), c2(4, 3);
	TestClass c3 = c1 + c2;
	c3.print();
}

Çıktı:

Aşırı yük Operator Örnek

İşte kodun ekran görüntüsü:

Aşırı yük Operator Örnek

Kod Açıklaması:

  1. Fonksiyonlarını kullanabilmek için iostream başlık dosyasını programımıza dahil ediyoruz.
  2. Sınıflarını çağırmadan kullanabilmek için std ad alanını programımıza ekleyin.
  3. TestClass adlı bir sınıf oluşturun. {, sınıf gövdesinin başlangıcını işaret eder.
  4. Değişkenleri özel olarak işaretlemek için özel erişim değiştiriciyi kullanın; bu, onlara yalnızca Sınıf içinden erişilebileceği anlamına gelir.
  5. Gerçek ve üzeri olmak üzere iki tamsayı değişkeni tanımlayın.
  6. Yapıcıyı public olarak işaretlemek için public erişim değiştiricisini kullanın, bu da ona Sınıfın dışından da erişilebileceği anlamına gelir.
  7. Sınıf yapıcısını oluşturma ve başlatma değişkenler.
  8. Real değişkeninin değerini başlat.
  9. Değişkenin değerini sıfırlayın.
  10. Yapıcı gövdesinin sonu.
  11. + operatörünün anlamını geçersiz kılın.
  12. TestClass türünün veri türü sonucunu oluşturun.
  13. Karmaşık sayılarla + operatörünü kullanın. Bu satır bir sayının gerçek kısmını başka bir sayının gerçek kısmına ekleyecektir.
  14. Karmaşık sayılarla + operatörünü kullanın. Bu satır bir sayının sanal kısmını başka bir sayının sanal kısmına ekleyecektir.
  15. Program başarılı bir şekilde yürütüldüğünde değişken sonucunun değerini döndürecektir.
  16. + operatörünün yeni anlamı yani aşırı yükleme tanımının sonu.
  17. print() yöntemini çağırın.
  18. Konsolda toplama işleminden sonra yeni karmaşık sayıyı yazdır.
  19. print() fonksiyonunun gövdesinin sonu.
  20. TestClass Sınıfının gövdesinin sonu.
  21. main() fonksiyonunun çağrılması.
  22. Toplanacak hem gerçek hem de karmaşık kısımların değerlerini geçiriyoruz. c1'in ilk kısmı c2'nin ilk kısmına eklenecek, yani 9+4. c1'in ikinci kısmı c'nin ikinci kısmına eklenecek, yani 5+3.
  23. Aşırı yüklenmiş + operatörünü kullanarak bir işlem gerçekleştirmek ve sonucu c3 değişkeninde saklamak.
  24. c3 değişkeninin değerinin konsola yazdırılması.
  25. main() işlevinin gövdesinin sonu.

ÖZET

  • Bir kelime için birden fazla anlam belirtebilirsiniz C++ Şebeke tek kapsamda.
  • Buna operatörün aşırı yüklenmesi denir.
  • OperaTor aşırı yüklemesi, kullanıcı tanımlı bir veri türü için bir operatörün özel bir anlamını sağlar.
  • Çoğunu yeniden tanımlayabilirsiniz C++ operatör aşırı yüklemesi yoluyla operatörler.
  • Tüm C++ operatörler aşırı yüklenebilir.
  • Bir operatörün aşırı yüklenmesi için işlenenlerden en az birinin kullanıcı tanımlı bir nesne olması gerekir.
  • Yalnızca mevcut operatörler aşırı yüklenebilir. Yeni operatörlere aşırı yükleme yapamazsınız.

Bu yazıyı şu şekilde özetleyin: