intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Kỹ thuật lập trình: Bài 13 - TS. Đào Trung Kiên

Chia sẻ: Cao Thi Ly | Ngày: | Loại File: PDF | Số trang:23

56
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Kỹ thuật lập trình: Bài 13 do TS. Đào Trung Kiên biên soạn trình bày các nội dung sau: Các phiên bản C++, critical sections và quản lý sử dụng tài nguyên, khái niệm hàm lambda, tham chiếu rvalue và ý nghĩa move, các constructor copy và move, các toán tử gán copy và move,...

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kỹ thuật lập trình: Bài 13 - TS. Đào Trung Kiên

Bài 13: C++11<br /> <br /> 1<br /> <br /> EE3490: Kỹ thuật lập trình – HK1 2017/2018<br /> TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội<br /> <br /> Các phiên bản C++<br /> C++98 (đã học trong các bài trước):<br /> <br /> <br /> <br /> <br /> <br /> Được ISO chuẩn hoá lần đầu tiên<br /> <br /> C++03:<br /> <br /> <br /> <br /> <br /> <br /> Một số thay đổi nhỏ<br /> <br /> C++0x / C++11:<br /> <br /> <br /> <br /> <br /> <br /> <br /> Rất nhiều cập nhật mới<br /> Nhiều tính năng được lấy lại từ thư viện boost<br /> <br /> C++14:<br /> <br /> <br /> <br /> <br /> <br /> Một số mở rộng so với C++11<br /> <br /> C++17:<br /> <br /> <br /> <br /> <br /> 2<br /> <br /> Đang thảo luận…<br /> EE3490: Kỹ thuật lập trình – HK1 2017/2018<br /> TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội<br /> <br /> Tự suy đoán kiểu<br /> Ví dụ:<br /> <br /> <br /> <br /> map m;<br /> // map::iterator itr = m.begin();<br /> auto itr = m.begin();<br /> // pair& a = m["KTLT"];<br /> <br /> auto& a = m["KTLT"];<br /> // pair b;<br /> decltype(a) b;<br /> <br /> 3<br /> <br /> EE3490: Kỹ thuật lập trình – HK1 2017/2018<br /> TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội<br /> <br /> Vòng lặp for theo khoảng (range-based for loop)<br /> double a[10];<br /> list l;<br /> vector v;<br /> <br /> for (int x : a) {<br /> //...<br /> }<br /> for (string& x : l) {<br /> //...<br /> }<br /> for (complex& x : v) {<br /> //...<br /> }<br /> 4<br /> <br /> EE3490: Kỹ thuật lập trình – HK1 2017/2018<br /> TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội<br /> <br /> Con trỏ thông minh (smart pointers)<br /> Là kiểu trừu tượng cho phép mô phỏng các con trỏ,<br /> nhưng bổ sung thêm một số tính năng khác:<br /> <br /> <br /> <br /> <br /> <br /> <br /> Quản lý bộ nhớ tự động<br /> Kiểm tra phạm vi<br /> <br /> Ví dụ:<br /> <br /> <br /> <br /> shared_ptr p1(new int(10));<br /> shared_ptr p2 = p1;<br /> *p2 = 20;<br /> <br /> // bộ nhớ sẽ được thu hồi khi<br /> // tham chiếu cuối cùng được huỷ<br /> 5<br /> <br /> EE3490: Kỹ thuật lập trình – HK1 2017/2018<br /> TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội<br /> <br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2