Danh mục

Chương 3: Lớp va đối tượng

Số trang: 52      Loại file: ppt      Dung lượng: 4.00 KB      Lượt xem: 5      Lượt tải: 0    
10.10.2023

Xem trước 6 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Các thao tác cơ bản  Định nghĩa: Tương tự như định nghĩa 1 kiểu dữ liệu mới. Mỗi đối tượng đều phải thuộc về một lớp nào đó. Nên định nghĩa 1 lớp mới là xây dựng lớp đó để chuẩn bị tạo ra các đối tượng của lớp đó.  Khai báo: tương tự như khai báo...
Nội dung trích xuất từ tài liệu:
Chương 3: Lớp va đối tượngPhần2:NgônngữlậptrìnhC++ Chương 3: Lớp và đối tượng 1Cácnộidungchính Lớp và các thao tác đối với lớp Sử dụng các đối tượng Hàm thành viên Con trỏ this Hàm bạn (friend function) Định nghĩa lại các toán tử trong lớp Cấp phát động bộ nhớ Các thành phần kiểu static 2/52Lớpvàcácthaotáccơbản Các thao tác cơ bản Định nghĩa: Tương tự như định nghĩa 1 kiểu dữ  liệu mới. Mỗi đối tượng đều phải thuộc về một lớp nào đó. Nên định nghĩa 1 lớp mới là xây dựng lớp đó để chuẩn bị tạo ra các đối tượng của lớp đó. Khai báo: tương tự như khai báo dữ liệu hay hàm  con. Tuy nhiên việc khai báo lớp thường chỉ được dùng khi việc định nghĩa lớp này cần phải làm sau đó (như khi định nghĩa các lớp có sử dụng các thành phần của nhau) 3/52 Địnhnghĩamộtlớpmới Định nghĩa một lớp mới cho phép tạo ra một lớp mới, bao gồm các thành phần dữ liệu và các hàm thành viên cần thiết. Cú pháp: E: từ khóa xác định mức độ che dấu (hay thuộc tính truy xuất): private, public hoặc protected class { Type: kiểu dữ liệu hoặc kiểu hàm và có //Đn các thành phần dữ liệu thể là tên lớp d1; … Vị trí đặt đ/n lớp: có thể trước hoặc sau //Đn các hàm thành viên hàm main(). f1();… }; Không được đ/n một lớp trong một lớp khác 4/52Vídụvềđ/nlớp:Program2.2 class Circle { private: static const float PI=3.1415; //Hằng số tĩnh, hằng số của lớp //Bán kính, thành phần dữ liệu của từng đối tượng float r; public: void setRadius(float re){ r=re; } float getRadius(){ return r; } float area(){ return PI*r*r; } }; 5/52 Khaibáolớpclass Circle; //Khai báo lớpint main(){ Circle c; //Khai báo đối tượng thuộc lớp c.setRadius(10); …}class Circle {… //Định nghĩa lớp đưa ra sau hàm main}; 6/52Sửdụngcácđốitượng Các thao tác cơ bản cho đối tượng: Khai báo: là thao tác đầu tiên để sử dụng được  một đối tượng Truy nhập vào các thành phần: sử dụng toán  tử “.” cho đối tượng thông thường, “->” cho đối tượng kiểu con trỏ. 7/52Program3.2,mởrộngProgram2.2//Đ/n lớp Circleint main(){ Circle c; //Khai báo và sử dụng đối tượng thông thường c.setRadius(10); coutHàmthànhviên(memberfunctions) Phân biệt giữa hàm thành viên và hàm tự do Các thao tác cơ bản cho hàm thành viên Hàm tự thiết lập và hàm tự hủy 9/52 Hàmthànhviênvàhàmtựdo Hàm thành viên: là hàm thuộc một lớp, và cũng sẽ thuộc về các đối tượng của lớp đó Hàm tự do: là các hàm được định nghĩa bên ngoài các lớp, chính là hàm con trong C. 10/52Cácthaotáccơbảnchohàmthànhviên Tương tự như hàm tự do, cũng có 2 thao tác cơ bản cho hàm thành viên: Khai báo: chỉ khai báo phần đầu của hàm. Có sự  khác biệt cơ bản trong việc khai báo giữa hàm thành viên và hàm tự do. Mục đích của việc khai báo hàm tự do là để chuẩn bị sử dụng (gọi) hàm đó. Còn việc khai báo hàm thành viên chỉ để chuẩn bị cho việc định nghĩa hàm này. Định nghĩa: trong C++, định nghĩa hàm có thể  được đặt bên trong lớp hoặc đưa ra ngoài. 11/52Program3.1:XâydựngvàsửdụnglớpPoint class Point { //Đ/n lớp Point float _x, _y; public: void setXY(float x, float y); //Khai báo hàm tv float getX(){ return _x; } //Đ/n hàm tv float getY(){ return _y; } //Đ/n hàm tv float distanceTo(Point p); //Khai báo hàm tv }; 12/52Program3.1(tiếp) //Đ/n các hàm tv bên ngoài lớp void Point::setXY(float x, float y){ _x = x; _y = y; } float Point::distanceTo(Point p){ float d = (p._x-_x)*(p._x-_x) + (p._y-_y ...

Tài liệu được xem nhiều: