Tải bản đầy đủ (.pptx) (20 trang)

Bài thuyết trình c plus plus chinhthuc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (422.49 KB, 20 trang )

LỚP , HÀM FRIEND VÀ CÁC THÀNH VIÊN TĨNH CỦA LỚP
TRƯỜNG ĐẠI HỌC QUẢNG BÌNH
KHOA KỸ THUẬT – CÔNG NGHỆ

NGÔN NGỮ LẬP TRÌNH C PLUS PLUS
Nhóm thực hiện :
1. Cao Đức Nghĩa
2. Mai Thanh Sang
3. Phạm Hữu Phú
4. Trần Nhật Linh
Nội dung
LỚP
1
CÁC THÀNH VIÊN TĨNH CỦA LỚP
2
HÀM FRIEND ( HÀM BẠN )
3
1 . Lớp
Chữ

Khái niệm :

Lớp là tập hợp những đối tượng có chung một kiểu
thuộc tính

Lớp có 2 thành phần chính

Thành viên dữ liệu ( Data member )

Hàm thành viên ( Member function )
Ví dụ : Định nghĩa lớp , mô tả và xử lý các điểm trên màn


hình đồ họa . Lớp được đặt tên là “điểm “.
#include <iostream>
using namespace std;
class diem
{
private:
int x,y,m;
public:
void nhapsl();
void hien();
void set_value(int putpixel,int getbkcolor)
{
putpixel(x,y,getbkcolor());
};
void diem::nhap()
{
cout<<"\n nhap hoanh do (cot) va tung do ( hang ) cua diem :";cin>>x>>y;
cout<<"\n nhap ma mau cua diem :";cin>>m;
}
void set_value(int mau_ht,int )
{
int mau_ht;
mau_ht=getbkcolor();
putpixel(x,y,m);
setcolor(mau_ht);
};
void main()
{
diem a;
a.nhap();

a.hien();
//getch();
}
}
Thành viên của lớp
Thành viên dữ liệu được khai báo như sau :

Hàm thành viên : định nghĩa bên trong lớp .
Class <tên lớp>
{….
Public:
void set_value(int x , int y)
{
h = x ; w = y;
}
<Kiểu dữ liệu trả về><tên hàm>(<đối số>)
{
//Thân hàm
}
}

Hàm thành viên : định nghĩa bên ngoài lớp .
<Kiểu dữ liệu trả về><tên lớp>::<tên hàm>(<đối số>)
{
//Thân hàm
}
Class <tên lớp>
{
provite :
int h,w;

public :
void set_value(int x,int y)
int area();
}
CÁC THÀNH VIÊN TĨNH CỦA
LỚP

Mỗi đối tượng của một lớp có bản sao chép của chính nó
của tất cả các thành viên dữ liệu của lớp.
2
Các thành viên tĩnh :

public

private

protected
public :

Có thể được truy cập thông qua bất kỳ đối tượng nào của lớp đó .

Hoặc truy cập thông qua tên lớp sử dụng toán tử định phạm vi.

Để truy cập một thành viên lớp tĩnh public khi các đối
tượng của lớp không tồn tại, đơn giản thêm vào đầu tên
lớp và toán tử định phạm vi cho thành viên dữ liệu.
private và protected :

phải được truy cập thông qua các hàm thành
viên public của lớp .


Hoặc thông qua các friend của lớp.

Để truy cập một thành viên lớp tĩnh private hoặc protected
khi các đối tượng của lớp không tồn tại, một hàm thành viên
public phải được cung cấp và hàm phải được gọi bởi thêm vào
đầu tên của nó với tên lớp và toán tử định phạm vi.

Trong các trường hợp nhất định chỉ có duy nhất một bản chép
thành viên dữ liệu đặc biệt cần phải dùng chung bởi tất cả các
đối tượng của một lớp.

Một thành viên dữ liệu tĩnh biểu diễn thông tin toàn lớp
(class-wide)

Khai báo một thành viên tĩnh bắt đầu với từ khóa STATIC.
Tính chất các thành
viên tĩnh của lớp

Tồn tại ngay cả khi đối tượng của lớp đó không tồn tại.

Thành viên dữ liệu tĩnh có thể giống như các biến toàn
cục, các thành viên dữ liệu tĩnh có phạm vi lớp.

Các thành viên dữ liệu tĩnh phải được khởi tạo một lần
(và chỉ một lần) tại phạm vi file

Một hàm thành viên tĩnh không có con trỏ this

Các thành viên dữ liệu tĩnh và các hàm thành viên tĩnh tồn

tại độc lập với bất kỳ đối tượng nào của lớp.
Chú ý: Hàm thành viên dữ liệu tĩnh không được gọi
là const.
CÁC HÀM FRIEND ( HÀM BẠN )
3
Hàm friend ( Hàm bạn)
Chữ

Hàm friend của một lớp được định nghĩa bên ngoài
phạm vi của lớp đó .

Có quyền truy cập đến các thành viên private hoặc
protected của một lớp.

Một hàm hay toàn bộ lớp có thể được khai báo là
một friend của lớp khác.
Khai báo :

Một hàm là một friend của một lớp, đứng trước hàm nguyên
mẫu của hàm trong định nghĩa lớp với từ khóa friend.
friend <function-declarator>;
Cách 1:dùng từ khóa friend để khai báo hàm trong lớp .
Class A
{ private:
//khai bao cac thuoc tinh
public:
//khai bao cac ham ban cua lop A
Friend void f1(…);
Friend double f2(…);
Friend f3(…);

};
Để một hàm trở thành bạn của một lớp :
//xay dung cac ham f1,f2,f3….
Void f1(…)
{
………
}
Double f2(…)
{
………
}
A f3(…)
{
….
}
Cách 2: dùng friend để xây dựng hàm trong định nghĩa lớp :

Một lớp là friend của lớp khác :
friend <class-name>;
Class A
{
private:
//khai bao cac thuoc tinh
public:
…//xay dung cac ham ban cua lop A
friend void f1(…)
{

}
friend double f2(…)

{
……
}
friend A f3(…)
}
Một hàm có thể là bạn của nhiều lớp được không ?
-
Câu trả lời là được .
Class a;//khai bao truoc lop a
Class b;//khai bao truoc lop b
//định nghĩa lớp a
Class a
{//khai báo f là bạn của a
friend void f (…);
};
//định nghĩa lớp b
Class b
{//khai báo f là bạn của b
friend void f (…);
};

Chỉ định các hàm được đa năng hóa là các friend của lớp.

Mỗi hàm được đa năng hóa phải được khai báo tường minh
trong định nghĩa lớp như là một friend của lớp.

Phạm vi của hàm là toàn bộ chương trình

Đối của hàm có thể là các đối tượng .


Một số tính chất của hàm firend :
CẢM ƠN THẦY VÀ CÁC BẠN ĐÃ LẮNG NGHE !

×