Modern C ++ paradigmalarına en iyi bakış? [kapalı]


16

8 ila 10 yıl önce yaygın olarak C ++ yazıyordum. O zamandan beri profesyonel nedenlerle C # 'a geçtim. Ancak, zaman zaman şu ifadeleri görüyorum:

"İşaretçi referanslarını hala manuel olarak izliyorsanız, yanlış yapıyorsunuz"

veya

"RA ++ gibi modern kavramları kullandığınız ve kurtarıcı bir C geliştiricisi gibi manuel olarak bellek ayırmadığınız sürece C ++ mükemmel bir şekilde güvenlidir."

Her ikisi de on yıl önce standart prosedürdü. Son zamanlarda C ++ 'ın önemli ölçüde iyileştirildiğini gördüm; C ++ 0x özellikle bazı yeni yeteneklere sahip gibi görünüyor. Bir "C / eski C ++" programcısı için "modern" C ++ kalıpları ve uygulamalarına yetişmek için en iyi kaynak nedir?


3
On yıl önce standart prosedürdü. Ne yazık ki, otuz yıl önceki standart prosedürü kullanarak C ++ geliştiricilerinin hala çok önemli bir kısmı var .
DeadMG

7
Tek bir kaynak bilmiyorum, ama modern C ++ temelde: (1) el ile algoritmalar yerine mümkün olduğunda STL'nin yaygın kullanımı, (2) manuel tahsis / dağıtma üzerinde akıllı işaretçiler ve STL kaplarının kullanımı , (3) daha yüksek dereceli işlevlerle birlikte functors / lambdas kullanan işlevsel-esque programlama stili ve (4) mümkün olduğunda çalışma zamanı sanal işlevleri yerine şablon tabanlı statik polimorfizm tercihi
Charles Salvia

Scott Meyers
Gyan aka Gary Buyn

Yanıtlar:


5

Öğretim materyalleri ile diğer birçok şeyden daha fazla ilgisi olabilir, ancak 8-10 yıl önce, dilin kullanım şekli bugün için çok farklıydı. Günümüzde daha çok, bunlardan daha fazla korkunun olduğu ve insanların neredeyse sadece nesneler yönleriyle C'ye odaklandığı şablonlardan, tür güvenliğinden ve genel programlardan yararlanmaya odaklanıyor.

Öğretim materyalleri de değişiyor. Standart C ++ başlangıç ​​kitabından önce printf, scanf, vb.

Bazı iyi kitaplar kırmızı kitaplardan herhangi biri. Olağanüstü C ++, Daha Olağanüstü C ++, C ++ Şablonu Metaprogramlama, Modern C ++ Tasarımı, Hızlandırılmış C ++ ...

Şu anda nerede çalıştığımıza bakmak iyi bir örnek olabilir. Buraya modern bir şekilde C ++ kullanarak geldim ve çoğu geliştiricinin ne yaptığımı veya nedenini bile bilmediği anlaşılıyor. Örneğin içinde işleç () ile nesneler yapmak ... Bağlama () her oluşumdan cehenneme yorum yapmak zorunda kaldı ve sonunda tüm bu kodu not etmek için söylendi. Başlatıcıların ne yaptığını bilmiyorum ... Aslında benim için gerçekten garip ve zor oldu.


5

Modern özelliklerin hızlı gözetim oldukça iyi sunulan almak için, yanlış görüntüleme Herb Sutter'ın gitmek istemem son sunum / C ++ // vücutluydu özellikleri: "C ++ yılda nasıl geliştiğini kod ++ Modern C Yazma",.

Neden C # 'dan daha iyi bir dil hakkında konuşur (elbette - Microsoft pantolonlarını düzenli olarak değiştirir ve bugün C ++ modası giyiyorlar, bu yüzden bunu yutturuyorlar, sadece on yıl C #' a cevap olarak lke'yi hiperlediler. ama bunu yaparken tüm iyi bitleri ('otomatik' bellek yönetimi ve STL sınıfları gibi) tarif eder ve sonra C ++ 0x standardındaki yeni bitler hakkında konuşmaya devam eder.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.