Pertanyaan yang diberi tag «c++»

C ++ adalah bahasa pemrograman untuk tujuan umum. Awalnya dirancang sebagai ekstensi ke C dan memiliki sintaksis yang sama, tetapi sekarang bahasa yang sama sekali berbeda. Gunakan tag ini untuk pertanyaan tentang kode yang akan dikompilasi dengan kompiler C ++. Gunakan tag khusus versi untuk pertanyaan yang berkaitan dengan revisi standar spesifik [C ++ 11], [C ++ 14], [C ++ 17] atau [C ++ 20], dll.

2
C ++ inheritance - basis tidak dapat diakses?
Saya sepertinya tidak dapat menggunakan kelas dasar sebagai parameter fungsi, sudahkah saya mengacaukan warisan saya? Saya memiliki yang berikut ini di main saya: int some_ftn(Foo *f) { /* some code */ }; Bar b; some_ftn(&b); Dan class Bar mewarisi dari Foo sedemikian rupa: class Bar : Foo { public: Bar(); …
157 c++  inheritance 

6
Pindahkan tangkapan di lambda
Bagaimana cara saya menangkap dengan memindahkan (juga dikenal sebagai referensi nilai) dalam lambda C ++ 11? Saya mencoba menulis sesuatu seperti ini: std::unique_ptr<int> myPointer(new int); std::function<void(void)> example = [std::move(myPointer)]{ *myPointer = 4; };



8
Mengapa pustaka dan kerangka kerja C ++ tidak pernah menggunakan pointer pintar?
Saya membaca di beberapa artikel bahwa pointer mentah hampir tidak boleh digunakan. Alih-alih, mereka harus selalu dibungkus dengan pointer pintar, apakah itu scoped atau shared pointer. Namun, saya perhatikan bahwa kerangka kerja seperti Qt, wxWidgets dan perpustakaan seperti Boost tidak pernah kembali atau mengharapkan pointer pintar, seolah-olah mereka tidak menggunakannya …

7
std :: enable_if untuk mengkompilasi fungsi anggota dengan syarat
Saya mencoba mendapatkan contoh sederhana untuk bekerja guna memahami cara menggunakan std::enable_if. Setelah saya membaca jawaban ini , saya pikir tidak terlalu sulit untuk memberikan contoh sederhana. Saya ingin menggunakan std::enable_ifuntuk memilih antara dua fungsi anggota dan hanya memperbolehkan salah satunya digunakan. Sayangnya, yang berikut ini tidak dikompilasi dengan gcc …
156 c++  templates  g++  c++11 


12
Iterasi melalui Vektor C ++ menggunakan loop 'for'
Saya baru mengenal bahasa C ++. Saya telah mulai menggunakan vektor, dan telah memperhatikan bahwa di semua kode yang saya lihat untuk iterasi meskipun vektor melalui indeks, parameter pertama dari forloop selalu sesuatu berdasarkan vektor. Di Java saya mungkin melakukan sesuatu seperti ini dengan ArrayList: for(int i=0; i < vector.size(); …



7
cara cepat untuk menyalin satu vektor ke yang lain
Saya lebih suka dua cara: void copyVecFast(const vec<int>& original) { vector<int> newVec; newVec.reserve(original.size()); copy(original.begin(),original.end(),back_inserter(newVec)); } void copyVecFast(vec<int>& original) { vector<int> newVec; newVec.swap(original); } Bagaimana Anda melakukannya?
155 c++  algorithm  stl 

10
dynamic_cast dan static_cast dalam C ++
Saya cukup bingung dengan dynamic_castkata kunci dalam C ++. struct A { virtual void f() { } }; struct B : public A { }; struct C { }; void f () { A a; B b; A* ap = &b; B* b1 = dynamic_cast<B*> (&a); // NULL, because 'a' …
155 c++  dynamic-cast 

3
Kapan harus menggunakan argumen std :: forward to forward?
C ++ 0x menunjukkan contoh menggunakan std::forward: template<class T> void foo(T&& arg) { bar(std::forward<T>(arg)); } Kapan menguntungkan untuk digunakan std::forward, selalu? Selain itu, harus digunakan &&dalam deklarasi parameter, apakah valid dalam semua kasus? Saya pikir Anda harus memberikan temporari ke suatu fungsi jika fungsi tersebut dideklarasikan &&dengannya, jadi bisakah foo …

1
Apa logika di balik kata kunci "menggunakan" di C ++?
Apa logika di balik kata kunci "menggunakan" di C ++? Ini digunakan dalam situasi yang berbeda dan saya mencoba untuk menemukan apakah semua itu memiliki kesamaan dan ada alasan mengapa kata kunci "menggunakan" digunakan seperti itu. using namespace std; // to import namespace in the current namespace using T = …
155 c++  c++11 


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.