class tên_lớp{ các_thuộc_tính các_phương_thức }tên_đối_tượng; |
tên_đối_tượng: là tên của đối tượng.
Bạn sẽ thấy khai báo lớp tương đối giống khai báo struct.
Các thuộc tính được khai báo như khai báo biến. Các phương thức được khai báo như khai báo hàm. Chúng có thể được chỉ định bằng một trong ba từ khóa: private, protected và public.
- private: các thành viên (biến thành viên hoặc hàm thành viên) của cùng một lớp hoặc từ một hàm bạn của nó có thể truy cập.
- protected: các thành viên của cùng một lớp hoặc từ một hàm bạn của nó hoặc từ một lớp dẫn xuất của nó hoặc bạn của một lớp dẫn xuất của nó đều có thể truy cập. Mức truy cập lớn nhất trong trường hợp này là bạn của lớp dẫn xuất. Chúng ta sẽ thảo luận thêm trong những phần sau.
- public: các thành viên có thể truy cập lẫn nhau từ mọi lớp.
class Humans{ string name; int age; public: void setName(string); void setAge(string); string getName(void); int getAge(void); }man; |
Sau khi khai báo lớp, bạn cần bổ sung phần thân lớp – tương ứng với các hàm thành viên. Bạn có thể bổ sung trực tiếp vào trong lớp – tương tự khai báo hàm trực tiếp, hoặc sử dụng khai báo prototype. Đối với khai báo prototype, để xác định một phương thức là của một lớp, ta sử dụng toán tử phạm vi ::
Chương trình | Kết quả |
#include class Humans{ string name; int age; public: void setName(string); void setAge(int); string getName(void); int getAge(void); }; void Humans::setName(string s){ name = s; } void Humans::setAge (int a){ age = a; } string Humans::getName(void){ return name; } int Humans::getAge(void){ return age; } int main(){ Humans man; man.setName(“Jack”); man.setAge(21); cout<<”The man: “< return 0; } | The man: Jack, age 21 |
Toán tử phạm vi :: sẽ giới hạn sự truy cập bất hợp lệ của những hàm không thuộc lớp Humans hay là bạn của Humans. Đây là một cách thức để quy định một phương thức có phải là thành viên của một lớp hay không. Cách thức thứ hai, là bạn có thể khai báo hàm trực tiếp ngay bên trong lớp. Về bản chất, hai cách này không có sự khác biệt nào.
Lớp cũng có tác dụng như là một kiểu dữ liệu, do đó, ta cũng có thể khai báo nhiều đối tượng của cùng một lớp hay mảng các đối tượng.
Chương trình | Kết quả |
#include class Humans{ string name; int age; public: void setName(string); void setAge(int); string getName(void); int getAge(void); }; void Humans::setName(string s){ name = s; } void Humans::setAge (int a){ age = a; } string Humans::getName(void){ return name; } int Humans::getAge(void){ return age; } #define MAX 5 int main(){ Humans man[MAX]; for(int i=0; i string s; int a; cout<<”Name and age of Student ” <<(i+1)< cin>>s; cin>>a; man[i].setName(s); man[i].setAge(a); } cout<<”=====Students=====”< for(int i=0; i cout<<”The man: “< return 0; } | Name and age of Student 1 Nam 21 Name and age of Student 2 Binh 22 Name and age of Student 3 Xuan 22 Name and age of Student 4 Tuan 21 Name and age of Student 5 Lan 22 =====Students===== The man: Nam, age 21 The man: Binh, age 22 The man: Xuan, age 22 The man: Tuan, age 21 The man: Lan, age 22 |
Cơ sở của lập trình hướng đối tượng là dữ liệu thành viên và các hàm thành viên của một đối tượng. Chúng ta hoàn toàn không sử dụng một tập các biến toàn cục để truyền qua một hàm (hay tập các biến cục bộ truyền theo tham biến), mà thay vào đó, chúng ta sử dụng các đối tượng cùng với dữ liệu thành viên và hàm thành viên của nó. Các hàm thành viên tác động trực tiếp lên các dữ liệu thành viên.
No comments:
Post a Comment