Video: Learn Python - Full Course for Beginners [Tutorial] 2024
intrinsic veri türleri, int , float gibi C ++ dilinde oluşturulmuştur., ve çift ve çeşitli işaretçi türleri. C ++, programcının bu dahili operatöre ek olarak oluşturduğu sınıflar için operatörleri tanımlamasını sağlar. Buna, operatör aşırı yüklemesi denir.
Normalde, operatör aşırı yüklenmesi isteğe bağlıdır ve C ++ programcıları tarafından başlatılmaya çalışılmamaktadır. Bir çok deneyimli C ++ programcısı, operatör aşırı yüklemenin harika bir fikir olduğunu düşünmemektedir. Bununla birlikte, bir operatöre nasıl aşırı yük bindireceğinizi öğreneceksiniz: atama operatörü.
Bir operatör, kendine özgü bir sözdizimi ile yerleşik bir işlevden başka bir şey değildir. Aşağıdaki ekleme işlemi
a + b
operatör + (a, b)
şeklinde yazılmış gibi anlaşılabilir. Aslında, C ++ her operatöre bir işlev stili adı verir. Bir operatörün işlevsel adı, operatör simgesinin önünde anahtar kelime işleci ve ardından uygun bağımsız değişken türleri bulunur. Örneğin, bir int oluşturan bir int öğesine int ekleyen + operatörüne int operatörü + (int, int) adı verilir.
Varolan herhangi bir operatör, kullanıcı tanımlı sınıf için tanımlanabilir. Böylece, Komplex türündeki iki nesneyi çarpma imkânı sağlayacak bir Karmaşık işleci * (const Complex &, const Complex &) oluşturabilirim. Yeni operatör, aşırı yüklediği operatör ile aynı semantiği olabilir, ancak bunun zorunda değildir. Operatörler aşırı yüklendiğinde aşağıdaki kurallar geçerlidir:
-
Programcı aşırı yükleyemez. (nokta), :: (iki nokta üst üste), . *, * ->, sizeof ve ?: (üçlü) operatörler.
-
Programcı yeni bir operatör icat edemez. Örneğin, x $ y işlemini icat edemezsiniz.
-
Bir operatörün sözdizimi değiştirilemez. Böylece% i bir operasyon tanımlayamazsınız, çünkü% zaten bir ikili operatör olarak tanımlandı.
-
Operatörün önceliği değişemez. Bir program + operatörünün * 'dan önce değerlendirilmesini zorlamaz.
-
İşletmenler intrinsik türlere uygulandığında yeniden tanımlanamaz - 1 + 2'nin anlamını değiştiremezsiniz. Mevcut operatörler yalnızca yeni tanımlanan türler için aşırı yüklenebilir.
Operatörlerin aşırı yüklenmesi, gerçekten olduğundan daha iyi bir fikir gibi görünen şeylerden biridir. Genellikle, operatör aşırı yüklemesi çözdüğünden çok daha fazla sorun ortaya çıkarmaktadır.