Danh mục

Bài giảng Ngôn ngữ lập trình C - Chương 11: Đối tượng và lớp

Số trang: 30      Loại file: pdf      Dung lượng: 124.44 KB      Lượt xem: 16      Lượt tải: 0    
Hoai.2512

Phí tải xuống: 7,000 VND Tải xuống file đầy đủ (30 trang) 0
Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng Ngôn ngữ lập trình C Chương 11: Đối tượng và lớp trình bày về đối tượng, lớp, con trẻ this, hàm thiết lập, hàm hủy bỏ, hàm thiết lập sao chép, các thành phần tĩnh, hàm bạn và lớp bạn...cùng tìm hiểu bài giảng để hiểu sâu hơn về đối tượng trong lập trình C.
Nội dung trích xuất từ tài liệu:
Bài giảng Ngôn ngữ lập trình C - Chương 11: Đối tượng và lớpCHƯƠNG 11: ĐỐI TƯỢNG VÀ LỚP• Nội dung Đối tượng Lớp Con trỏ this Hàm thiết lập Hàm hủy bỏ Hàm thiết lập sao chép Các thành phần tĩnh Hàm bạn và lớp bạn Đối tượng• Đối tượng là một khái niệm trong lập trình hướng đối tượng biểu thị sự liên kết giữa dữ liệu và các thủ tục (gọi là phương thức) thao tác trên dữ liệu• ĐỐI TƯỢNG = DỮ LIỆU + PHƯƠNG THỨC Lớp Lớp là một mô tả nhóm các đối tượng có cùng bản chất, ngược lại mỗi một đối tượng là một biểu hiện cụ thể cho những mô tả trừu tượng đó.• khai báo lớp• class • {• private:• • public:• • };•  Các thành phần của lớp có thể là thành phần dữ liệu (thuộc tính) hoặc hàm thành phần (phương thức). Thành phần dữ liệu được khai báo giống như khai báo biến Hàm thành phần được khai báo giống như khai báo hàm trong C. Có hai cách định nghĩa một hàm thành phần: định nghĩa trong lớp và ngoài lớp. Tất cả các thành phần được liệt kê sau từ khóa private hoặc protected chỉ được truy nhập bởi các thành phần bên trong lớp đó. Còn tất cả các thành phần được liệt kê sau từ khóa public có thể được truy nhập trong bất kỳ hàm nào.• Ví dụ 1:• Class Diem• {• private:• int x, y; // Các thành phần dữ liệu riêng• public:• //Các hàm thành phần công cộng• void Nhap();• void Xuat();• };• //Định nghĩa các hàm thành phần bên ngoài lớp• void Diem::Nhap()• { cout x >> y;• }• void Diem::Xuat()• { cout Con trỏ this• C++ sử dụng con trỏ đặc biệt this trong các hàm thành phần. Con trỏ này luôn trỏ tới đối tượng dùng làm tham số ngầm định trong lời gọi hàm thành phần.• Ví dụ 2: Các hàm thành phần Nhap() và Xuat() có thể viết theo cách khác như sau• void Diem::Nhap()• {• cout this->x >> this->y;• }• void Diem::Xuat()• {• cout x Hàm thiết lập Hàm thiết lập là một hàm đặc biệt được gọi tự động mỗi khi có một đối tượng được khai báo. Chức năng của hàm thiết lập là để khởi tạo giá trị cho các thành phần dữ liệu hoặc xin cấp phát vùng nhớ cho các thành phần dữ liệu động. Hàm thiết lập được khai báo giống như một hàm thành phần với tên trùng tên với lớp, không có giá trị trả về và không cần khai báo void. Có thể có nhiều hàm thiết lập trong cùng một lớp (chồng hàm thiết lập). Khi một lớp có nhiều hàm thiết lập, việc tạo ra các đối tượng phải kèm theo các tham số phù hợp với một trong các hàm thiết lập đã khai bào. Khi người sử dụng không khai báo tường minh bất kỳ một hàm thiết lập nào cho lớp thì trình biên dịch tự động phát sinh cho lớp một hàm thiết lập ngầm định không tham số, hàm này không thực hiện bất cứ nhiệm vụ nào ngoài việc “lấp chỗ trống”.• Ví dụ 3:• Class Diem• {• private:• int x, y;• public:• ...• Diem(); //Khai báo hàm thiết lập không đối số• Diem(int xx); //Khai báo hàm thiết lập một đối số• Diem(int xx, int yy); //Khai báo hàm thiết lập hai đối số• };• //Định nghĩa các hàm thành phần• Diem::Diem()• {• cout • Diem::Diem(int xx)• {• cout • Ví dụ 4:• Class Diem• {• private:• int x, y;• public:• ...• Diem(int xx = 0, int yy = 0); /*Khai báo hàm thiết lập hai đối số có giá trị ngầm định*/• };• Diem::Diem(int xx, int yy)• { cout Hàm hủy bỏ Hàm hủy bỏ là một hàm đặc biệt được gọi tự động khi đối tượng tương ứng bị xóa khỏi bộ nhớ. Hàm hủy bỏ được khai báo giống như một hàm thành phần với tên bắt đầu bằng dấu ~ và tiếp theo là tên lớp tương ứng, không có đối số và không có giá trị trả về. Một lớp chỉ có duy nhất một hàm hủy bỏ. Chức năng của hàm hủy bỏ thường dùng để giải phóng vùng nhớ động mà đối tượng đang quản lý. Khi người sử dụng không khai báo tường minh một hàm hủy bỏ nào thì chương trình dịch sẽ tự động sản sinh ra một hàm hủy bỏ ngầm định, hàm này không làm gì cả ngoài việc “lấp chỗ trống”.• Ví dụ 5:• void fct(); //Nguyên mẫu hàm của một hàm tự do• class Test• {• private:• int n;• public:• Test(int nn); //Khai báo hàm thiết lập một đối số• ~Test(); //Khai báo hàm hủy bỏ• };• //Định nghĩa các hàm thành phần• Test::Test(int nn)• { n = nn;• cout • Test::~Test()• {• cout Sự cần thiết của hàm thiết lập và hàm hủy bỏ• Trên thực tế với các lớp không có thành phần dữ liệu động chỉ cần sử dụng hàm thiết lập và hủy bỏ ngầm định là đủ. Hàm thiết lập và hủy bỏ do người lập trình tạo ra rất cần thiết khi các lớp có chứa thành phần dữ liệu động. Khi tạo đối tượng hàm thiết lập xin cấp phát một bộ nhớ động, do đó hàm hủy bỏ sẽ giải phóng vùng nhớ động đã được cấp phát trướ ...

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