«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.

1
Neden enjekte edilmiş bir sınıf adı var?
Son zamanlarda garip bir C ++ özelliği gördüm: enjekte edilen sınıf adı . class X { }; X x1; class X::X x2; // class X::X is equal to X class X::X::X x3; // ...and so on... Ancak bu özelliğin neden gerekli olduğunu anlayamıyorum. Bu özelliği gerektiren herhangi bir uygulama var …
150 c++ 

7
Kullanımdan kaldırıldı olarak C ++ işareti
Bir arabirimde, taşınabilir C ++ ile kullanımdan kaldırmak istediğim bir yöntemim var. Bunun için Google'da araştırdığımda sahip olduğum tek şey Microsoft'a özgü bir çözümdü; #pragma kullanımdan kaldırıldı ve __declspec (kullanımdan kaldırıldı) . İkinci bir ödül çözüm, bir MSVC ve bir GCC çözümünün ifdefidir. Teşekkürler
150 c++ 


19
Değerleri ne olursa olsun türler neden daima belirli bir boyuttadır?
Uygulamalar gerçek tür boyutları arasında farklılık gösterebilir, ancak çoğu durumda imzasız int ve float gibi türler her zaman 4 bayttır. Ama bir tür değeri ne olursa olsun neden her zaman belirli bir miktarda bellek kaplar ? Örneğin, 255 değeriyle aşağıdaki tamsayıyı oluşturduysam int myInt = 255; Sonra myIntderleyici ile 4 …
149 c++ 

12
Neden x [0]! = X [0] [0]! = X [0] [0] [0]?
Biraz C ++ okuyorum ve işaretçilerle savaşıyorum. Şunu bildirerek 3 seviye işaretine sahip olabileceğimi anlıyorum: int *(*x)[5]; bu *xişaretçi olan 5 öğeden oluşan bir dizi için bir işaretçi int. Ayrıca biliyorum x[0] = *(x+0);, x[1] = *(x+1)vb. Peki, yukarıdaki açıklama göz önüne alındığında, neden x[0] != x[0][0] != x[0][0][0]?
149 c++  c  arrays  pointers 

17
Sabit işaretçilerin anlamı nedir?
Değerleri sabitlemek için işaretçilerden bahsetmiyorum, ama işaretçileri kendileri sabitlemek. Çok temel şeylerin ötesinde C ve C ++ öğreniyorum ve bugüne kadar işaretçilerin işlevlere değerden geçtiğini anladım, bu da mantıklı. Bu, bir fonksiyonun içinde, kopyalanan işaretçiyi, arayandan orijinal işaretçiyi etkilemeden başka bir değere işaret edebileceğim anlamına gelir. Öyleyse şöyle bir işlev …
149 c++  c  pointers  const 

2
`Void_t` nasıl çalışır
Walter Brown'un Cppcon14'te SFINAE tekniğini sunduğu modern şablon programlama ( Bölüm I , Bölüm II ) hakkındaki konuşmasını void_tizledim. Örnek: Tüm şablon argümanlarının iyi biçimlendirilmiş olup olmadığını değerlendiren basit bir değişken şablonu verildiğinde void: template< class ... > using void_t = void; ve aşağıdaki özellik olduğunu üyesi değişkeni denilen varlığını …
149 c++  templates  c++14  sfinae 

2
"Statik sabit" ve "sabit" C ++ semantiği
C ++ 'da özellikle, örneğin aşağıdakiler arasındaki anlamsal farklar nelerdir: static const int x = 0 ; ve const int x = 0 ; hem staticbir bağlantı hem de bir depolama sınıfı tanımlayıcısı olarak (yani bir işlevin içinde ve dışında).
149 c++ 

6
C ++, vektöre kopyala
Kopyalamam std::setgereken yer std::vector: std::set <double> input; input.insert(5); input.insert(6); std::vector <double> output; std::copy(input.begin(), input.end(), output.begin()); //Error: Vector iterator not dereferencable Sorun nerede?
149 c++  copy  stdvector  stdset 

8
Yineleme sırasında std :: set'den eleman silme
Bir kümeden geçmem ve önceden tanımlanmış bir kriteri karşılayan öğeleri kaldırmam gerekiyor. Bu yazdığım test kodu: #include <set> #include <algorithm> void printElement(int value) { std::cout << value << " "; } int main() { int initNum[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; std::set<int> …

5
Geliştirilmiş GCC 6 optimizer neden pratik C ++ kodunu kırıyor?
GCC 6'nın yeni bir optimize edici özelliği var : Her thiszaman boş olmadığını varsayar ve buna göre optimize eder. Değer aralığı yayılımı artık C ++ üye işlevlerinin bu işaretçisinin boş olmadığını varsayar. Bu, genel boş işaretçi denetimlerini ortadan kaldırır, ancak bazı uygun olmayan kod tabanlarını da (Qt-5, Chromium, KDevelop gibi) …



11
Saf sanal işlev neden 0 ile başlatılır?
Her zaman saf bir sanal işlev beyan ederiz: virtual void fun () = 0 ; Yani, her zaman 0'a atanır. Ne anlamak bu NULL için bu işlev için vtable giriş başlatmak olduğunu ve burada başka bir değer derleme zamanı hatası ile sonuçlanır olduğunu. Bu anlayış doğru mu değil mi?

13
Neden cpp dosyaları eklememeli ve bunun yerine bir başlık kullanmam gerekir?
Bu yüzden ilk C ++ programlama ödevimi bitirdim ve notumu aldım. Ama derecelendirmeye göre, için not kaybettim including cpp files instead of compiling and linking them. Bunun ne anlama geldiğinden çok açık değilim. Koduma bir göz attığımda, sınıflarım için başlık dosyaları oluşturmamayı seçtim, ancak cpp dosyalarındaki her şeyi yaptım (başlık …
147 c++  header-files 

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.