Yêu cầu mọi thông tin sao chép từ blog này phải được ghi rõ đầy đủ: Thông tin được sao chép từ "http://www.dangngochoangthanh.blogspot.com".

Cool wallpaper http://www.fancymessage.com

EMOJI KEYBOARD PRO http://emojiselector.com

THƯ VIỆN HÌNH ĐỘNG FLASH ANIMATION: http://flashanimationlibrary.blogspot.ru/

Hệ thống học trực tuyến đang được phát triển và sẽ đưa vào sử dụng vào cuối năm nay. Hãy xem qua một số demo của Học Trực Tuyến.


HỌC TRỰC TUYẾN ĐÃ CUNG CẤP PHIÊN BẢN TRUY CẬP QUA MOBILE http://dangngochoangthanh.blogspot.com/?m=1

XEM KÊNH HỌC TRỰC TUYẾN TRÊN YOUTUBE



Search on This Blog

Saturday, September 11, 2010

Các mức truy cập

Mức độ cho phép truy cập đến các dữ liệu thành viên từ một lớp được cho trong bảng sau
Phạm vi public protected private
Thành viên của cùng một lớp được phép được phép được phép
Thành viên của lớp dẫn xuất được phép được phép không được phép
Còn lại được phép không được phép không được phép
Bạn cũng cần lưu ý rằng trong cách viết về tính kế thừa Cat:public Animal có một số quy tắc chuyển đổi. Nếu các thành viên của lớp cơ sở có mức truy cập là A, khi thừa kế ta quy định mức truy cập của lớp con đối với lớp cơ sở là B (A và B có thể là private < protected < public)  và giả sử rằng A
Như tôi đã giới thiệu ở trên, một biến thành viên được chỉ định từ khóa chỉ mức truy cập là private thì chỉ có các phương thức trong cùng một lớp hoặc các phương thức bạn mới có quyền truy cập (bao gồm hàm bạn và lớp bạn). Nếu mức truy cập là public, thì mọi phương thức đều có quyền truy cập đến. Tôi xin giải thích kĩ hơn cho bạn đối với từ khóa protected. Tôi cũng đã trình bày về các khả năng mà một phương thức có thể truy cập đến một biến thành viên được khai báo là protected:

- Tương tự như các mức truy cập của private.
- Từ các phương thức của một lớp dẫn xuất.
- Từ các phương thức bạn của lớp dẫn xuất (bao gồm hàm bạn và lớp bạn).
Đối với trường hợp đầu tiên, chung ta không thảo luận thêm. Chúng ta sẽ quan tâm đến hai khả năng sau cùng. Đối với khả năng thứ hai, bạn có thể quan sát ví dụ sau đây:
Ví dụ Kết quả
#include using namespace std;
class Polygon{
protected:
int w, h;
public:
void SetValue(int w, int h){
this->w = w;
this->h = h;
}
};
class Rectangle:public Polygon{
public:
int GetArea(){
return w*h;
}
};
int main()
{
Rectangle rec;
rec.SetValue(4, 5);
cout<
return 0;
}
20
Giải thích: bạn lưu ý trong phương thức GetArea của đối tượng Rectangle. Nó sử dụng các biến thành viên được thừa kế từ lớp Polygon. Những biến thành viên này được khai báo là protected, do đó, nó có quyền truy cập đến.
Trong trường hợp, bạn của một lớp dẫn xuất, bạn có thể quan sát ví dụ minh họa sau đây:
Ví dụ Kết quả
#include using namespace std;
class Polygon{
protected:
int w, h;
public:
void SetValue(int w, int h){
this->w = w;
this->h = h;
}
};
class Rectangle:public Polygon{
public:
int GetArea(){
return w*h;
}
friend void ShowWH(Rectangle);
};
void ShowWH(Rectangle p){
cout<<<”x”<}
int main()
{
Rectangle rec;
rec.SetValue(4, 5);
ShowWH(rec);
return 0;
}
4×5
Giải thích: như bạn thấy, trong trường hợp này, phương thức ShowWH là bạn của lớp dẫn xuất Rectangle, nó có quyền truy cập đến các biến thành viên được chỉ định protected.

No comments:

Post a Comment