ngôn ngữ lập trình C++ 1

Chia sẻ: Quyen Duy | Ngày: | Loại File: PPT | Số trang:16

1
625
lượt xem
243
download

ngôn ngữ lập trình C++ 1

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

tài liệu công nghệ thông tin về kỹ thuật lập trình

Chủ đề:
Lưu

Nội dung Text: ngôn ngữ lập trình C++ 1

  1. Ngôn ngữ lập trình C++1    
  2. THAM CHIẾU (Reference) Tham chiếu là gì?  Giới hạn của tham chiếu  Truyền tham chiếu cho hàm  Hàm trả về nhiều giá trị  Hàm tạo bản sao  Con trỏ và tham chiếu  Tham chiếu con trỏ     
  3. THAM CHIẾU LÀ GÌ ? Là một bí danh của biến khác  Khi tạo ra một tham chiếu, gán nó lên một đối tượng khác  thì tham chiếu hoạt động như chính đối tượng đã gán đến nó Cú pháp:  Kiểu &TênThamChiếu = MộtĐốiTượngĐãTồnTại; Ví dụ:  Sinhvien sv_lop_T14A; Sinhvien &sv1 = sv_lop_T14A;    
  4. THAM CHIẾU LÀ GÌ ? Địa chỉ của tham chiếu: là địa chỉ của đối tượng mà nó  tham chiếu đến. Tương tự như trong thực tế khi một bí danh đã được gắn  với một người nào đó cụ thể. Chú ý: không thể gán lại thêm một lần nữa tên của tham  chiếu cho một đối tượng khác.    
  5. GIỚI HẠN CỦA THAM CHIẾU Có thể thực hiện tham chiếu với đối tượng nào? - phải tham chiếu đến một đối tượng cụ thể!  Ví dụ các khai báo sau là sai - 1) int &sn=int; 2) Sinhvien &sv1=Sinhvien; Các khai báo đúng - 1) int sn=20; int &i=sn; 2) Sinhvien sv_lop_T14A; Sinhvien &sv1 = sv_lop_T14A;    
  6. TRUYỀN THAM CHIẾU CHO HÀM(1) Nhắc lại về truyền tham trị:  Đối số truyền cho hàm là các giá trị  Câu lệnh return cho phép trả về một giá trị  void Doicho(int x, int y) { int tam; tam=x; x=y; y=tam; }    
  7. TRUYỀN THAM CHIẾU CHO HÀM(2) Giải quyết bằng con trỏ  void Doicho(int *px, int *py); { int tam; tam=*px; *px=*py; *py=tam; } Khi gọi hàm phải truyền đối số là con trỏ  int x=5,y=7; Doicho(&x,&y); Lúc này 2 giá trị x và y mới thực sự được đổi chỗ cho nhau     
  8. TRUYỀN THAM CHIẾU CHO HÀM(3) Giải quyết bằng truyền tham chiếu đến hàm: Đối tượng  thực sự được truyền đến hàm Có thể sửa đổi được giá trị của đổi tượng  void Doicho(int &x, int &y) { int tam; tam=x; x=y; y=tam;} Khi goi hàm, biến được truyền trưc tiếp, 2 giá trị x và y thực  sự được đổi chỗ cho nhau     Doicho(x,y);
  9. HÀM TRẢ VỀ NHIỀU GIÁ TRỊ(1) Hàm chỉ có thể trả về một giá trị.  Chúng ta sẽ sử dụng kỹ thuật truyền tham chiếu để thay đổi  các đối tượng ngoài ngay bên trong hàm, và như vậy hàm có thể “trả về” nhiều giá trị  Sử dụng con trỏ  Sử dụng tham chiếu    
  10. HÀM TRẢ VỀ NHIỀU GIÁ TRỊ(3) Sử dụng con trỏ  void HinhTron(int r, int *dientich, int *chuvi) { *dientich = 3.14 * r * r; *chuvi = 2 * 3.14 * r; } Khi gọi hàm phải truyền địa chỉ  RutgonPS(r, &dt,&cv);     
  11. HÀM TRẢ VỀ NHIỀU GIÁ TRỊ(4) Sử dụng tham chiếu  void HinhTron(int r, int &dientich, int &chuvi) { dientich = 3.14 * r * r; chuvi = 2 * 3.14 * r; } Khi gọi hàm phải truyền địa chỉ  RutgonPS(r, dt, cv);     
  12. HÀM TẠO BẢN SAO (1) (copy constructor) Hàm tạo bản sao:  Sinhvien::Sinhvien() { Cout
  13. HÀM TẠO BẢN SAO (2) Đối số ở dạng tham trị hoặc khi hàm trả về giá trị thì một  bản sao của đối số sẽ được tạo ra. Nếu đối số là đối tượng của lớp thì hàm tạo bản sao sẽ  được gọi. Giả sử có 2 hàm   Sinhvien Ham1(Sinhvien sv); Sinhvien Ham2(Sinhvien *sv); Khi hàm 1 được gọi, phải truyền đối số ở dạng tham trị nên  hàm tạo bản sao được gọi Khi hàm 2 được gọi, truyền đối số ở dạng tham chiếu, hàm  tạo bản sao không được gọi    
  14. CON TRỎ & THAM CHIẾU Qua các ví dụ đã phân tích, việc sử dụng con trỏ và tham  chiếu cho ta kết quả giống nhau Nên sử dụng tham chiếu thay cho con trỏ nếu có thể  Nếu ta làm việc với nhiều đối tượng, chỉ có cách duy nhất  là sử dụng con trỏ Hơn nữa tham chiếu không thể nhận giá trị null     
  15. THAM CHIẾU CON TRỎ (Pointer Reference) Tham chiếu con trỏ: Được dùng khi muốn thay đổi  giá trị địa chỉ trong con trỏ. Ví dụ: void Doicho(Sinhvien *&sv1, Sinhvien *&sv2) { SinhVien *temp; temp = sv1; sv1 = sv2; sv2 = temp; }    
  16. Bài tập 1.Xây dựng lớp hình chữ nhật với các thuộc tính sau: Xtt,Ytt, Xpd, Ypd- là tọa độ trái-trên, phải-dưới của một hình chữ nhật. Với các phương thức sau: Hàm tạo, Hàm hủy, Phương thức đặt giá trị cho các thuộc tính, và phương thức lấy giá trị của các thuộc tính(dùng tham chiếu và con trỏ). Viết chương trình minh họa. 2. Viết chương trình xây dựng lớp Điểm trong không gian 2 chiều với các thuộc tính sau: hoành độ x, tung độ y là các số thực. Với các phương thức sau: hàm tạo, hàm hủy, phương thức đặt giá trị cho x và y, phương thức lấy giá trị x, phương thức lấy giá trị y và phương thức lấy cả 2 giá trị x, y.  Viết chương trình minh họa.  

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản