C ++ 'da insan karşıtı çeviri hakkında konuşmak

Yazar | Zhu Bingzuo

Editör | Liu Jing

Üretildi | CSDN (ID: CSDNnews)

C ++ 'dan bahsetmişken, çoğu programcının zihnindeki ilk izlenimin çok karmaşık olduğunu düşünüyorum.C ++' ın öğrenme eğrisi çok dik.

Ben de C ++ öğrenme sürecinde çok zaman harcadım. Ben şahsen, C ++ 'nın dik öğrenme eğrisinin nedenlerinden birinin Çin'deki C ++ özelliklerinin anti-insan çevirisi olduğunu düşünüyorum.

Bu insan karşıtı çeviriler, hayattaki sağduyu anlayışıma ciddi şekilde meydan okudu. Kişisel olarak, karmaşık kavramları her zaman anlaşılması kolay sağduyuya dönüştürmeyi seviyorum.

Aşağıdaki kavramlar, C ++ öğrenirken karşılaştığım bazı anlaşılmaz kavramlardır.Bu kavramlar aslında karmaşık değildir.Kişisel mütevazı görüş, yanlış isim çevirisinden kaynaklanmaktadır.

C ++ 'nın anlaşılmasını zorlaştıran bu insan karşıtı çevirilere bir göz atalım.

İnsan karşıtı bir çeviri: yapıcı

Yeniden adlandırılmalıdır: başlangıç değeri işlevi. Yapıcının ana işlevi, üye değişkenlere başlangıç değerleri atamaktan başka bir şey değildir. Tabii ki, içine bir cout çıktısı da ekleyebilirsiniz. Ancak asıl işlev, başlangıç değerlerini belirlemektir. Aslında bu süreci, büyük bir öğretmene giren ve el sanatlarına başlamaya hazırlanan bir grup çocuk olarak hayal edebilirsiniz.Resmi olarak el işlerine başlamadan önce, bu çocuklardan her birine bir ilk koltuk numarası söylemelisiniz. Başlangıç değerini vermek, kurucunun ana işidir.

1 sınıf Zaman 2 { 3 halka açık: 4 Zaman (int n): num (n) {} 5 özel: 6 int num; 7};

Yıkıcıyı süpürme işlevine değiştirin

Bu büyük çocuk grubu işi bitirdikten sonra sınıf kirli ve dağınıktı. Bu kadar uzun süre bırakılamaz. Ayrılmadan önce sınıfı temizlemelisin. Yıkıcı, "sonrasını temizlemek" için kullanılır (örneğin, bir nesne oluştururken, bir bellek alanı parçası açmak için yeni kullanın ve silme işlemi otomatik olarak yıkıcıyı çağırır ve belleği serbest bırakır).

Yıkıcının C ++ 'daki biçimi aşağıdaki gibidir:

ders saati { halka açık: ~ Zaman {} };

Ek olarak, yıkıcının infaz sırası da bu şekilde anlaşılabilir. Bu sınıf dikdörtgendir ve her sıraya sadece bir kişi oturabilir. Bu sınıfa girdiğinizde önce en içteki alanda oturan çocukların girmesine izin vermelisiniz.Temizlik yapılırken en son gelen çocuklar önce temizlik yapmalı, sonra çocukları tek tek takip etmelidir.

Bu şekilde tüm çocukların içeri girip oturduğu sıra şöyledir: E- > D- > C- > B- > A.

Temizleme sırası: A B C D E

Fonksiyon aşırı yüklemesi ve operatör aşırı yüklemesinin de değiştirilmesi gerekir

Aşırı yükleme sözcüğünü kimin yarattığını gerçekten bilmiyorum. C ++ öğrenirken şok olduğumu hatırlıyorum. Başka bir sert kemik geliyormuş gibi geliyor. İşlevin aşırı yüklenmesi, aynı adla, ancak farklı türde işlevlerle değiştirilmelidir. Örneğin, ABCDE'nin beş çocuğunun adı "Xiaoming" ama Xiaoming A basketbol oynamakta iyidir.Gelecekte, Xiaoming A'yı basketbol oynamak için bulacaktır. B Xiaoming çizimde iyidir, bu yüzden B Xiaoming'den sınıfta resim yapmasını isteyeceğim. C Xiaoming piyano çalmada iyidir, bu yüzden sınıfta piyano çalmak için C Xiaoming'e geleceğim. Operatör aşırı yüklemesi aynı adı taşıyan ancak farklı sınıflara sahip operatörler olarak değiştirilmelidir. Aynı adı taşıyan operatör birkaç görevi yerine getirir.

Fonksiyon aşırı yükleme listesi:

int Max (int, int); // iki tam sayının maksimum değerini döndürür; int Max (sabit vektör < int > ); // Vektör kabındaki maksimum değeri döndür; int Max (const matrix); // matris referansının maksimum değerini döndürür;

Operatör aşırı yükleme örnekleri:

Kutu operatörü + (sabit Kutu); Kutu operatörü + (const Box, const Box);

Arkadaş işlevi arkadaş işlevi olarak değiştirildi

ABCDE'nin beş çocuğunun her birinin kendi iyi arkadaşları var ve sadece iyi arkadaşlar lezzetli atıştırmalıklarını birbirleriyle paylaşacak. Örneğin, A'nın en iyi arkadaşı C. O zaman C A'nın atıştırmalıklarını yiyebilir. Arkadaş işlevi bunu yapar. Örneğin, A işlevi kendi arkadaş işlevi olarak bildirildikten sonra, bu A işlevi kendi özel veri üyelerine erişebilir.

sınıf kutusu { çift genişlik; halka açık: çift uzunluk; arkadaş voidprintWidth (Kutu kutusu); // Arkadaş işlevi // voidsetWidth (çift geniş); };

Türetilen sınıf, oğul sınıfına değiştirilir, türetilen sınıf "sheng" olarak değiştirilir, temel sınıf, ana sınıf olarak yeniden adlandırılır

Bir alt sınıf, tekli miras adı verilen bir üst sınıftan bir özellik devralır. Bir oğul sınıfı, mülkiyeti iki veya daha fazla ebeveyn sınıfından miras alır, çoklu miras olarak adlandırılır, çünkü bu oğul sınıfının annesi birkaç kez yeniden evlenmiş olabilir ve babalarının her biri mülkü bu oğula devralmaya isteklidir. Böylece birden çok babanın mülkiyetini miras aldı. Sanal temel sınıf, cimri ebeveyn sınıfı olarak yeniden adlandırıldı, çünkü mülkiyeti oğluna devraldığında, cimri babasının bu oğluna verdiği şeyin tekrarlanmayacağından emin olmak için cimri babasıyla bir toplantı yapacaktı. Bu cimri baba bir televizyon seti verdi ve diğer cimri baba vermedi, bu yüzden kendisine saklamak zorunda kaldı.

sınıf N: {halka açık: Int x; Boş ekran {cout < < "Selam Dünya" < < endl} }; Sınıf A: genel N {halka açık: Float y; }

Dinamik ve statik ilişki

Statik ilişkilendirme, evlilik bağı olarak yeniden adlandırıldı. İki taraf evli olduğu için, gelecekteki çocuğun kim olacağını doğmadan önce belirleyebilirler.

Dinamik ilişkilendirme ismini doğum sonrası bağlayıcı olarak değiştirir. İki taraf evli değildir ve evlenmemiş ilk oğulları vardır. Bir taraf şüpheli olabilir. Doğum yaptıktan sonra kim olduğunuzu görmeli ve çocuğun kime ait olduğunu bilmek için DNA'yı kontrol etmelisiniz.

Öncelikle statik ilişkilendirmenin tanımına bakalım: nesne adlarıyla çağrılan işlev aşırı yükleme ve sanal işlevler, çağrılan sanal işlevin hangi sınıfa ait olduğu derleme zamanında belirlenebilir. İşlem, çalıştırmadan önce ilişkilendirildiği için statik ilişkilendirme olarak adlandırılır. Bu nedenle erken çağrışım da denir.

Basitçe şu şekilde anlaşılır: Sanal işlevin babasının derleme zamanında kim olduğunu belirleyebilirsiniz Bu işleme evlilik bağlama denir.

Dinamik ilişkilendirmenin tanımına bakalım: çalışma zamanında, temel sınıf işaretçisi değişkeni belirli bir sınıf nesnesini işaret eder ve ardından sanal işlev bu temel sınıf işaretçisi aracılığıyla çağrılır. Sanal işlev, çalışma zamanında nesneye "bağlı" olduğundan, bu işlem dinamik ilişkilendirme olarak adlandırılır. Dinamik korelasyon, derlemeden sonra çalıştırma aşamasında gerçekleştirildiğinden, buna gecikmeli korelasyon da denir.

Basitçe şu şekilde anlaşılır: Babanızın koştuktan sonra kim olduğunu bilmek, bu sürece doğum sonrası bağlama denir.

Buna değiştirilirse, anlayış daha derinleşecek, hangi dinamik ve statikin daha önce belirlendiği ve hangisinin sonradan belirlendiği bir süre sonra netleşmeyecektir.

Sorumluluk Reddi: Bu makale, yazarın bağımsız bakış açısıdır ve CSDN'nin konumunu temsil etmez.

SON

Disney'in rakibi burada! Dünyanın en büyüğü, Şangay'a yerleşti
önceki
Hangzhou dadı kundaklamasından 828 günde döndü: Bu dünyadaki tüm sakin iyilik için teşekkür ederim.
Sonraki
Limitine ulaşmış! Programcılar tarafından çılgınca yayılan bu Python tanrısı nerede?
uyarmak! Bu iki dolandırıcılıkta biri neredeyse bir milyon kaybetti
Annenin karakteri çocuğun kaderini, kocanın sevgisi de annenin karakterini belirler.
Ren Zhengfei: Huawei 5G kör bir kedi ve bir fare
17 Küçük Duygusal Sözler Uç noktalara kısa ama ağlamaklı
Ant Financial, WeBank ve Duxiaoman hepsi burada, akıllı finans nereye gidecek? (Makalenin sonu faydaları)
Kaş şeklini değiştirme = plastik cerrahi? Güzel kaşları nasıl çizeceğinizi öğretin
Günlük göz makyajını açmanın doğru yolu budur
Ünlü kozmetiklerin raf ömrü sadece 3 ay mı? Son kullanma tarihi geçmiş kozmetikler kullanıp kullanmadığınızı görün
JavaScript neden günümüze kadar yaşıyor?
Avrupa tarzı büyük göz makyajını açmanın doğru yolu budur.
Her şeyin birbirine bağlanmasını hızlandırmak için 5G + bulut ağ entegrasyonu
To Top