«c++» etiketlenmiş sorular

Statik olarak yazılmış, serbest biçimli, çok paradigmalı, derlenmiş, genel amaçlı bir programlama dili olan C ++ ile ilgili sorular.


13
Her bir onaylı göstericiyi boş bırakmamak mantıklı mı?
Yeni bir işte, şöyle kod için kod incelemelerinde işaretlenmeye başladım: PowerManager::PowerManager(IMsgSender* msgSender) : msgSender_(msgSender) { } void PowerManager::SignalShutdown() { msgSender_->sendMsg("shutdown()"); } Bana son yöntemin okuması gerektiği söylendi: void PowerManager::SignalShutdown() { if (msgSender_) { msgSender_->sendMsg("shutdown()"); } } yani ben gereken bir koyun NULLetrafında nöbet msgSender_bunun özel veri üyesi olmasına rağmen değişken. …

3
Özel üyeleri neden başlıklara koymalıyız?
Özel değişkenler, karmaşıklığı ve uygulama ayrıntılarını bir sınıf kullanıcısına gizlemenin bir yoludur. Bu oldukça hoş bir özellik. Fakat neden c ++ 'ta onları bir sınıf başlığına koymamız gerektiğini anlamıyorum. Bunun için iki sinir bozucu dezavantaj görüyorum: Başlığı kullanıcıdan alır. İçindekiler değiştirildiğinde, tüm istemci kitaplıklarının yeniden derlenmesini zorlar. Bu gereksinimin arkasında …
62 c++  headers 

10
Sadece fonksiyon aşırı yükleme için bir C ++ derleyici kullanmak kötü bir uygulama mıdır?
Bu yüzden belirli bir işlemci için C kullanarak bir yazılım tasarımı üzerinde çalışıyorum. Araç kiti C ve C ++ 'ları derleme becerisine sahiptir. Yaptıklarım için, bu ortamda dinamik bir bellek ayırma işlemi mevcut değil ve program genel olarak oldukça basit. Cihazın neredeyse hiçbir işlemci gücüne veya kaynağına sahip olduğundan bahsetmiyorum. …

7
C ++ 'ta bit bayrakları için scoped enums kullanmak
Bir enum X : int(C #) veya enum class X : int(C ++ 11), intherhangi bir değeri tutabilecek gizli bir iç alanına sahip olan bir türdür . Ek olarak, bir dizi önceden tanımlanmış sabit Xenumda tanımlanmıştır. Enum değerini tamsayı değerine çevirmek mümkündür; Tüm bunlar hem C # hem de C …

10
Daha iyi Show () + Hide () veya SetVisible (bool görünür)?
Hangisi daha iyi ve neden? (Arayüz tasarımı açısından): a) İkisine Show()ve Hide()fonksiyonuna sahip olmak b) Bir SetVisible(bool visible)işleve sahip olmak EDIT: Örneğin, bazı nesnelerin görünürlük durumu vardır ve bu fonksiyonlar onu değiştirmek için kullanılır. c) her üç sahip olmak Show(), Hide(), SetVisible(bool visible)işlevlerini
59 java  c++  interfaces 

9
std :: shared_ptr son çare olarak?
Sadece "Going Native 2012" yayınlarını izliyordum ve hakkında bir tartışma gördüm std::shared_ptr. Bjarne'nin olumsuz görüşlerini std::shared_ptrve bir nesnenin yaşam süresi belirsiz olduğunda (buna göre, nadiren bunun olması gerektiğine inanıyorum), bunun “son çare” olarak kullanılması gerektiği şeklindeki görüşünü duyduğuma biraz şaşırdım . Bunu daha derinlemesine açıklamak isteyen var mı? std::shared_ptrNesneleri ömür …

13
Tanımsız Davranışın Arkasındaki Felsefe
C \ C ++ özellikleri, derleyicilerin kendi yöntemleriyle uygulayabilecekleri çok sayıda davranış ortaya koyar. Burada hep aynı soruyu sormaya devam eden birkaç soru var ve bu konuda bazı mükemmel yayınlarımız var: https://stackoverflow.com/questions/367633/what-are-all-the-common-undefined-behaviour-that-ac-programmer-should-know-abo https://stackoverflow.com/questions/4105120/what-is-undefined-behavior https://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points Benim sorum tanımsız davranışın ne olduğu ile ilgili değil ya da gerçekten kötü. Tehlikeleri ve ilgili …


11
Java'nın modern bir incelemesi [kapalı]
Birkaç yıldır programlama yapıyorum ve Java'da başladım ve zamanımda Java'nın bir şekilde aşağılık bir dil olduğunu iddia eden birçok farklı kaynak buldum. Her dilin güçlü ve zayıf yönleri olduğunu çok iyi biliyorum, ama Java hakkında okuduğum pek çok şeyin tarihli olduğu görünüyor. Java'nın yetersiz kalmasının en sık alıntılanan nedeni, örneğin …

9
Okunabilirliğe karşı korunma, iç içe geçmiş işlev çağrıları yazma özel vakası
İç içe işlev çağrıları için kodlama stilim şudur: var result_h1 = H1(b1); var result_h2 = H2(b2); var result_g1 = G1(result_h1, result_h2); var result_g2 = G2(c1); var a = F(result_g1, result_g2); Kısa süre önce aşağıdaki kodlama tarzının kullanımda olduğu bir bölüme geçtim: var a = F(G1(H1(b1), H2(b2)), G2(c1)); Kodlama yöntemimin sonucu, …

7
Neden C ++ 'nihayet' yapı yok?
C ++ 'da kural dışı durum işleme, dene / at / yakala ile sınırlıdır. Object Pascal'dan farklı olarak Java, C # ve Python, C ++ 11'de bile finallyyapı uygulanmadı. "İstisna güvenli kodunu" tartışan çok fazla C ++ literatürü gördüm. Lippman, güvenli kod istisnasının, Primerinin kapsamının ötesinde, önemli ama gelişmiş, zor …
57 c++  exceptions 

7
Neden std :: string karşısında bu kadar çok string sınıfı var?
Bana göre daha büyük birçok C ++ kütüphanesi kendi string tipini oluşturuyor. İstemci kodunda sen (kütüphaneden birini kullanmak zorunda ya QString, CString, fbstringveya çoğu zaman gerektirir ki (standart tip ve biri arasında kütüphane kullanımlarını dönüştürme tutmak, kimsenin birkaç isim eminim vs.) en az bir kopya). Öyleyse, belirli bir yanlışlık veya …
56 c++ 

3
Bir lambda nedir ve neden faydalı olabilir? [kapalı]
Şimdiye kadar duydum: Lambda hesabı Lambda programlama Lambda ifadeleri Lambda fonksiyonları Bunların hepsi işlevsel programlama ile ilgili görünüyor ... Görünüşe göre C ++ 1x'e entegre olacak, şimdi daha iyi anlayabiliyorum: http://en.wikipedia.org/wiki/C%2B%2B0x#Lambda_functions_and_expressions Birisi kuzuların neler olduğunu kısaca tanımlayabilir ve faydalı olabileceği bir yere verebilir mi?

15
Neden postfix artışımız var?
Feragatname : Önek ve sonek artışının anlamını çok iyi biliyorum. Lütfen bana nasıl çalıştıklarını açıklama. Yığın taşması ile ilgili soruları okurken yardım edemem ama programcıların postfix artrım operatörü tarafından tekrar tekrar karıştığını fark ettim. Bundan şu soru ortaya çıkar: Postfix artışının kod kalitesi açısından gerçek bir fayda sağladığı herhangi bir …
55 c++  c  postfix 

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.