«c++» etiketlenmiş sorular

C ++ genel amaçlı bir programlama dilidir. Başlangıçta C'nin bir uzantısı olarak tasarlanmıştır ve benzer bir sözdizimine sahiptir, ancak şimdi tamamen farklı bir dildir. Bir C ++ derleyicisiyle derlenecek kod (sorulacak) ile ilgili sorular için bu etiketi kullanın. Belirli bir standart revizyon [C ++ 11], [C ++ 14], [C ++ 17] veya [C ++ 20] vb. İle ilgili sorular için sürüme özgü bir etiket kullanın.

6
C ++ 17'de neden std :: make_unique kullanılıyor?
Anladığım kadarıyla, C ++ 14 tanıtıldı std::make_uniqueçünkü parametre değerlendirme sırasının belirtilmemesi nedeniyle bu güvenli değildi: f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (Açıklama: Eğer değerlendirme önce hafızayı ham işaretçi için ayırırsa, sonra çağırır g()ve yapımdan önce bir istisna atılırsa std::unique_ptr, hafıza sızdırılır.) Arama std::make_unique, arama sırasını kısıtlamanın bir yoluydu ve böylece …
98 c++  c++17  unique-ptr 


8
vektör :: at ve vektör :: operatörü []
Bunun , / [] operatör hızında C ++ Vector veya :: std :: vector :: at () ile operatör [] << arasındaki benzer sorularda tartışılan sınır kontrolünden at()daha yavaş olduğunu biliyorum << şaşırtıcı sonuçlar !! 5 ila 10 kat daha yavaş / daha hızlı! . Sadece yöntemin ne işe yaradığını …
98 c++  stl  stdvector 

1
Temsilci oluşturucu kullanılırken üye başlatma
C ++ 11 standardını denemeye başladım ve bir init yöntemine veya benzerine sahip olmaktan kaçınmak için ctor'unuzu aynı sınıftaki başka bir ctor'dan nasıl çağıracağınızı açıklayan bu soruyu buldum . Şimdi aynı şeyi şuna benzeyen kodla deniyorum: hpp: class Tokenizer { public: Tokenizer(); Tokenizer(std::stringstream *lines); virtual ~Tokenizer() {}; private: std::stringstream *lines; …

28
Program yalnızca sürüm derlemesi olarak çöküyor - nasıl hata ayıklanır?
Burada "Schroedinger'ın Kedisi" tipi bir sorunum var - programım (aslında programım için test paketi, ancak yine de bir program) çöküyor, ancak yalnızca yayın modunda oluşturulmuşsa ve yalnızca komut satırından başlatıldığında . Mağara adamı hata ayıklama yoluyla (yani, her yerde kötü printf () mesajları), kodun çöktüğü test yöntemini belirledim, ancak ne …
98 c++  debugging 

2
Const std :: string & 0'ın kabul etmesini engelleyin
Bin kelimeye bedel: #include<string> #include<iostream> class SayWhat { public: SayWhat& operator[](const std::string& s) { std::cout<<"here\n"; // To make sure we fail on function entry std::cout<<s<<"\n"; return *this; } }; int main() { SayWhat ohNo; // ohNo[1]; // Does not compile. Logic prevails. ohNo[0]; // you didn't! this compiles. return 0; …

14
Dökümden neden kaçınılmalıdır? [kapalı]
Kapalı . Bu soruya daha çok odaklanılması gerekiyor . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek mi istiyorsunuz? Soruyu yalnızca bu gönderiyi düzenleyerek tek bir soruna odaklanacak şekilde güncelleyin . 4 yıl önce kapalı . Bu soruyu geliştirin Genelde, türlerin dökümünden olabildiğince kaçınıyorum çünkü bunun kötü bir kodlama uygulaması …
97 c#  java  c++  casting 

4
QueryPerformanceCounter nasıl kullanılır?
Kısa bir süre önce, Timer sınıfım için milisaniye kullanmaktan mikrosaniyeye geçmem gerektiğine karar verdim ve bazı araştırmalardan sonra QueryPerformanceCounter'ın muhtemelen en güvenli bahis olduğuna karar verdim. ( Boost::PosixWin32 API üzerinde çalışmayabileceğine dair uyarı beni biraz rahatsız etti). Ancak bunu nasıl uygulayacağımı gerçekten bilmiyorum. Yaptığım şey, GetTicks()kullandığım esque işlevini çağırmak ve …
97 c++  windows  timer 

7
Ana işlev yerine main adlı global değişkene sahip bir program nasıl çalışabilir?
Aşağıdaki programı düşünün: #include <iostream> int main = ( std::cout << "C++ is excellent!\n", 195 ); Windows 7 işletim sisteminde g ++ 4.8.1 (mingw64) kullanarak, program derler ve iyi çalışır, yazdırır: C ++ mükemmeldir! konsola. mainbir işlevden ziyade global bir değişken olarak görünür; bu program fonksiyon olmadan nasıl çalışabilir main()? …


11
Bir işlevde erken dönüşün etkinliği
Bu, deneyimsiz bir programcı olarak sıklıkla karşılaştığım ve özellikle optimize etmeye çalıştığım iddialı, hız yoğun bir projem için merak ettiğim bir durum. Başlıca C benzeri diller (C, objC, C ++, Java, C #, vb.) Ve bunların her zamanki derleyicileri için bu iki işlev de aynı derecede verimli çalışacak mı? Derlenen …

2
Qt, sanal saf yuvaları destekliyor mu?
İçindeki GUI projem, Qttümü doğrudan miras alınan birçok "yapılandırma sayfası" sınıfına sahip QWidget. Son zamanlarda, tüm bu sınıfların 2 ortak yuvayı ( loadSettings()ve saveSettings()) paylaştığını fark ettim . Bununla ilgili olarak iki sorum var: BaseConfigurationPageSanal saf yöntemler olarak bu iki yuvayla bir ara temel soyut sınıf yazmak (adlandıralım ) mantıklı …

4
Qt'de bellek yönetimi?
Qt konusunda oldukça yeniyim ve bellek yönetimi ve nesnelerin ömrü ile ilgili bazı temel şeyleri merak ediyorum. Nesnelerimi ne zaman silmem ve / veya yok etmem gerekir? Bunlardan herhangi biri otomatik olarak işleniyor mu? Aşağıdaki örnekte, oluşturduğum nesnelerden hangisini silmem gerekiyor? Örnek değişkene ne olur myOtherClassne zaman myClassyok edilir? Nesnelerimi …
97 c++  qt  memory  object 

3
Sizeof (int) doğru iken sizeof int neden yanlış?
sizeofHerhangi bir veri türü ve ifadenin boyutunu hesaplamak için kullanılan bir operatör olduğunu biliyoruz ve işlenen bir ifade olduğunda parantezler ihmal edilebilir. int main() { int a; sizeof int; sizeof( int ); sizeof a; sizeof( a ); return 0; } ilk kullanım sizeofyanlış, diğerleri haklı. Gcc kullanılarak derlendiğinde, aşağıdaki hata …
97 c++  c  sizeof 

3
Qt'de normal bir işlevmiş gibi bir sinyali çağırmakla emit kullanmak
Diyelim ki şu sinyale sahibim: signals: void progressNotification(int progress); Kısa bir süre önce Qt'deki emit anahtar kelimesini öğrendim. Şimdiye kadar, sinyalleri sadece normal bir işlev gibi çağırarak yürütürdüm. Yani bunun yerine: emit progressNotification(1000 * seconds); Yazardım: progressNotification(1000 * seconds); Onları bu şekilde çağırmak işe yarıyor gibi görünüyordu ve tüm bağlı …
97 c++  qt 

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.