Câu hỏi được gắn thẻ «c++»

C ++ là ngôn ngữ lập trình có mục đích chung. Ban đầu nó được thiết kế như một phần mở rộng cho C và có cú pháp tương tự, nhưng giờ đây nó là một ngôn ngữ hoàn toàn khác. Sử dụng thẻ này cho các câu hỏi về mã (sẽ được) được biên dịch bằng trình biên dịch C ++. Sử dụng thẻ dành riêng cho phiên bản cho các câu hỏi liên quan đến sửa đổi tiêu chuẩn cụ thể [C ++ 11], [C ++ 14], [C ++ 17] hoặc [C ++ 20], v.v.


2
Tại sao chúng ta không thể tạo các đối tượng có thể xây dựng tầm thường bằng malloc nếu hàm tạo mặc định tầm thường thực hiện không có hành động?
Tôi gặp khó khăn trong việc hiểu đoạn văn sau được trích dẫn từ cppreference về hàm tạo mặc định tầm thường. Tôi đã tìm kiếm stackoverflow nhưng vẫn không nhận được câu trả lời rõ ràng. Vì vậy, xin vui lòng giúp đỡ. Một constructor mặc định tầm thường …

2
là sao chép và di chuyển xây dựng bạn bè tự động?
Chúng ta có thể truy cập các biến riêng của một lớp khác khi chúng ta định nghĩa sao chép hoặc di chuyển các hàm tạo. C ++ có làm cho chúng friendtự động với nhau không? Ví dụ: my_str::my_str(my_str&& m) { size_ = m.size_; //accessing private variable another my_str …
14 c++  friend-class 



3
Là một tên lớp đủ điều kiện xuống phạm vi toàn cầu bao giờ được yêu cầu cho các định nghĩa hàm thành viên ngoài dòng?
Câu hỏi này khiến tôi băn khoăn liệu có bao giờ hữu ích / cần thiết để đủ điều kiện tên lớp (bao gồm cả toán tử phạm vi toàn cầu) trong định nghĩa hàm thành viên ngoài lớp không. Một mặt, tôi chưa bao giờ thấy điều này được …


2
Điểm quan trọng để biết liệu một đối tượng là một tích phân hay không hoặc là một loại lớp hay không?
Xin chào, tôi đã thấy nhiều ví dụ như thế này trong Cppreference.com: std::is_class<T> std::is_integral Và như thế. Tôi biết nếu tôi chạy mã ví dụ tôi nhận được truehoặc false. Nhưng điểm trong đó là gì? vd: biết đối tượng có thuộc loại lớp hay không? #include <iostream> #include …
14 c++  templates 


3
Quá tải một chức năng lambda
Làm thế nào để quá tải một chức năng lambda địa phương đơn giản? SSE của vấn đề ban đầu: #include <iostream> #include <map> void read() { static std::string line; std::getline(std::cin, line); auto translate = [](int idx) { constexpr static int table[8]{ 7,6,5,4,3,2,1,0 }; return table[idx]; }; auto translate = …

1
Tại sao std :: hoán đổi hoạt động trên các phần tử vectơ <bool> trong Clang / Win?
Tôi có mã như thế này: #include &lt;vector&gt; #include &lt;utility&gt; int main() { std::vector&lt;bool&gt; vb{true, false}; std::swap(vb[0], vb[1]); } Tranh cãi về sự tỉnh táo của vector&lt;bool&gt;một bên, điều này đã làm việc tốt trên: Clang cho Mac Visual Studio cho Windows GCC cho Linux Sau đó, tôi đã thử …


3
std :: bit_cast với std :: mảng
Trong cuộc nói chuyện gần đây của anh ấy, kiểu lén lút trong C ++ hiện đại Timur Doumler nói rằng std::bit_castkhông thể sử dụng bit để floatchuyển thành một unsigned char[4]vì các mảng kiểu C không thể được trả về từ một hàm. Chúng ta nên sử dụng std::memcpyhoặc …

1
Làm thế nào để thực hiện c ++ nullptr hoạt động?
Tôi tò mò muốn biết làm thế nào nullptrhoạt động. Tiêu chuẩn N4659 và N4849 nói: nó phải có loại std::nullptr_t; bạn không thể lấy địa chỉ của nó; nó có thể được chuyển đổi trực tiếp thành một con trỏ và con trỏ thành thành viên; sizeof(std::nullptr_t) == sizeof(void*); …

3
Sao chép danh sách khởi tạo? Tại sao điều này biên dịch?
Tôi đang sử dụng Microsoft Visual Studio Community 2019, V16.5.2. Tôi muốn kiểm tra khởi tạo danh sách Vui lòng xem chương trình kiểm tra sau: #include &lt;string&gt; void foo(std::string str) {} int main() { foo( {"str1", "str2"} ); return 0; } Điều này biên dịch mà không có lỗi …
13 c++ 

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.