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.


4
Akan mengganti '::' dengan '. dapat membuat ambiguitas dalam C ++?
Dalam C ++, operator ::digunakan untuk mengakses kelas, fungsi dan variabel dalam namespace atau kelas. Jika spesifikasi bahasa yang digunakan .sebagai pengganti ::dalam kasus-kasus tersebut juga seperti ketika mengakses variabel instan / metode dari suatu objek, apakah itu akan menyebabkan kemungkinan ambiguitas yang tidak ada ::? Mengingat bahwa C ++ …


2
Bagaimana cara mengembalikan smart pointers (shared_ptr), dengan referensi atau nilai?
Katakanlah saya memiliki kelas dengan metode yang mengembalikan a shared_ptr. Apa keuntungan dan kerugian yang mungkin didapat dari mengembalikannya berdasarkan referensi atau nilai? Dua petunjuk yang mungkin: Penghancuran objek awal. Jika saya mengembalikan shared_ptrreferensi by (const), penghitung referensi tidak bertambah, jadi saya menanggung risiko objek dihapus ketika keluar dari ruang …

5
Dapatkah saya menginisialisasi daftar vektor tipe hanya bergerak?
Jika saya meneruskan kode berikut melalui snapshot GCC 4.7 saya, ia mencoba menyalin unique_ptrs ke dalam vektor. #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } Jelas itu tidak dapat berfungsi karena std::unique_ptrtidak dapat disalin: kesalahan: penggunaan fungsi yang dihapus …


6
Operator tilde di C
Saya telah melihat operator tilde yang digunakan dalam algoritma hashing ELF, dan saya penasaran apa fungsinya. (Kode ini dari Eternally Confused .) unsigned elf_hash ( void *key, int len ) { unsigned char *p = key; unsigned h = 0, g; int i; for ( i = 0; i < …
95 c++  c  operators 

3
Apa yang dimaksud dengan "hentakan memori"?
Saya baru saja menemukan entri blog ini yang menyebutkan "memori yang menghentak": program C ++ yang dengan mudah mampu menginjak memori (sesuatu yang mungkin belum pernah Anda dengar jika Anda lahir di dunia kode terkelola.) Dan sebenarnya saya belum pernah mendengarnya! Jadi, apa ini, memori yang menginjak, memori yang menginjak? …

3
<cstdint> vs <stdint.h>
Apa perbedaan antara stdint.hdan cstdint? Keduanya tersedia dalam MSVC (Visual Studio 2010) dan gcc-4.5.1. Juga keduanya menentukan intX_t/ uintX_ttypes (di mana Xukuran dalam byte tipe). Jika alasan di kedua tajuk sama (tipe portabel), keputusan apa yang harus saya ambil untuk memutuskan salah satunya? The stdint.hmendefinisikan setiap jenis tanpa namespace, yang …
95 c++  stdint  cstdint 

6
Di mana Visual Studio mencari file header C ++?
Saya memeriksa salinan aplikasi C ++ dari SourceForge (HoboCopy, jika Anda penasaran) dan mencoba mengkompilasinya. Visual Studio memberi tahu saya bahwa ia tidak dapat menemukan file header tertentu. Saya menemukan file tersebut di pohon sumber, tetapi di mana saya harus meletakkannya, sehingga akan ditemukan saat kompilasi? Apakah ada direktori khusus?

8
vektor :: di vs. vektor :: operator []
Saya tahu itu at()lebih lambat daripada []karena pemeriksaan batasnya, yang juga dibahas dalam pertanyaan serupa seperti C ++ Vector pada / [] kecepatan operator atau :: std :: vector :: at () vs operator [] &lt;&lt; hasil yang mengejutkan !! 5 hingga 10 kali lebih lambat / lebih cepat! . …
95 c++  stl  stdvector 

13
Penempatan tanda bintang di deklarasi penunjuk
Baru-baru ini saya memutuskan bahwa saya akhirnya harus belajar C / C ++, dan ada satu hal yang tidak terlalu saya mengerti tentang pointer atau lebih tepatnya, definisi mereka. Bagaimana dengan contoh ini: int* test; int *test; int * test; int* test,test2; int *test,test2; int * test,test2; Sekarang, menurut pemahaman …
95 c++  c  pointers  declaration 

7
Pengenal 'uint32_t' tidak ditemukan kesalahan
Saya mem-porting kode dari Linux C ke Visual C ++ untuk windows. Visual C ++ tidak tahu #include &lt;stdint.h&gt;jadi saya berkomentar. Belakangan, saya menemukan banyak 'uint32_t': identifier not foundkesalahan itu. Bagaimana cara mengatasinya?
95 c++  c  visual-c++ 


10
Mengapa C ++ tidak mengizinkan persahabatan yang diwariskan?
Mengapa persahabatan tidak paling tidak diwariskan secara opsional dalam C ++? Saya memahami transitivitas dan refleksivitas dilarang karena alasan yang jelas (saya mengatakan ini hanya untuk menghindari jawaban kutipan FAQ sederhana), tetapi kurangnya sesuatu di sepanjang garis virtual friend class Foo;teka - teki saya. Adakah yang tahu latar belakang sejarah …

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.